@open-agreements/open-agreements 0.2.0 → 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 (189) hide show
  1. package/README.md +40 -2
  2. package/content/templates/closing-checklist/metadata.yaml +6 -13
  3. package/content/templates/closing-checklist/template.docx +0 -0
  4. package/content/templates/common-paper-ai-addendum/README.md +18 -0
  5. package/content/templates/common-paper-ai-addendum/metadata.yaml +136 -0
  6. package/content/templates/common-paper-ai-addendum/replacements.json +5 -0
  7. package/content/templates/common-paper-ai-addendum/selections.json +62 -0
  8. package/content/templates/common-paper-ai-addendum/template.docx +0 -0
  9. package/content/templates/common-paper-ai-addendum-in-app/metadata.yaml +88 -0
  10. package/content/templates/common-paper-ai-addendum-in-app/replacements.json +5 -0
  11. package/content/templates/common-paper-ai-addendum-in-app/selections.json +62 -0
  12. package/content/templates/common-paper-amendment/README.md +18 -0
  13. package/content/templates/common-paper-amendment/metadata.yaml +48 -0
  14. package/content/templates/common-paper-amendment/template.docx +0 -0
  15. package/content/templates/common-paper-business-associate-agreement/README.md +20 -1
  16. package/content/templates/common-paper-business-associate-agreement/metadata.yaml +111 -3
  17. package/content/templates/common-paper-business-associate-agreement/replacements.json +2 -1
  18. package/content/templates/common-paper-business-associate-agreement/selections.json +38 -0
  19. package/content/templates/common-paper-business-associate-agreement/template.docx +0 -0
  20. package/content/templates/common-paper-cloud-service-agreement/README.md +18 -0
  21. package/content/templates/common-paper-cloud-service-agreement/metadata.yaml +48 -0
  22. package/content/templates/common-paper-cloud-service-agreement/template.docx +0 -0
  23. package/content/templates/common-paper-csa-with-ai/README.md +18 -0
  24. package/content/templates/common-paper-csa-with-ai/metadata.yaml +462 -2
  25. package/content/templates/common-paper-csa-with-ai/replacements.json +5 -2
  26. package/content/templates/common-paper-csa-with-ai/selections.json +291 -0
  27. package/content/templates/common-paper-csa-with-ai/template.docx +0 -0
  28. package/content/templates/common-paper-csa-with-sla/README.md +18 -0
  29. package/content/templates/common-paper-csa-with-sla/metadata.yaml +387 -2
  30. package/content/templates/common-paper-csa-with-sla/replacements.json +4 -2
  31. package/content/templates/common-paper-csa-with-sla/selections.json +257 -0
  32. package/content/templates/common-paper-csa-with-sla/template.docx +0 -0
  33. package/content/templates/common-paper-csa-without-sla/README.md +18 -0
  34. package/content/templates/common-paper-csa-without-sla/metadata.yaml +380 -2
  35. package/content/templates/common-paper-csa-without-sla/replacements.json +5 -2
  36. package/content/templates/common-paper-csa-without-sla/selections.json +250 -0
  37. package/content/templates/common-paper-csa-without-sla/template.docx +0 -0
  38. package/content/templates/common-paper-data-processing-agreement/README.md +16 -0
  39. package/content/templates/common-paper-data-processing-agreement/metadata.yaml +397 -3
  40. package/content/templates/common-paper-data-processing-agreement/replacements.json +2 -1
  41. package/content/templates/common-paper-data-processing-agreement/selections.json +211 -0
  42. package/content/templates/common-paper-data-processing-agreement/template.docx +0 -0
  43. package/content/templates/common-paper-design-partner-agreement/README.md +18 -0
  44. package/content/templates/common-paper-design-partner-agreement/metadata.yaml +99 -3
  45. package/content/templates/common-paper-design-partner-agreement/selections.json +27 -0
  46. package/content/templates/common-paper-design-partner-agreement/template.docx +0 -0
  47. package/content/templates/common-paper-independent-contractor-agreement/README.md +18 -0
  48. package/content/templates/common-paper-independent-contractor-agreement/clean.json +8 -0
  49. package/content/templates/common-paper-independent-contractor-agreement/metadata.yaml +52 -0
  50. package/content/templates/common-paper-independent-contractor-agreement/replacements.json +3 -0
  51. package/content/templates/common-paper-independent-contractor-agreement/template.docx +0 -0
  52. package/content/templates/common-paper-letter-of-intent/README.md +18 -0
  53. package/content/templates/common-paper-letter-of-intent/metadata.yaml +48 -0
  54. package/content/templates/common-paper-letter-of-intent/template.docx +0 -0
  55. package/content/templates/common-paper-mutual-nda/README.md +29 -7
  56. package/content/templates/common-paper-mutual-nda/metadata.yaml +48 -0
  57. package/content/templates/common-paper-mutual-nda/template.docx +0 -0
  58. package/content/templates/common-paper-one-way-nda/README.md +13 -0
  59. package/content/templates/common-paper-one-way-nda/metadata.yaml +24 -0
  60. package/content/templates/common-paper-one-way-nda/selections.json +38 -0
  61. package/content/templates/common-paper-one-way-nda/template.docx +0 -0
  62. package/content/templates/common-paper-order-form/README.md +18 -0
  63. package/content/templates/common-paper-order-form/metadata.yaml +115 -3
  64. package/content/templates/common-paper-order-form/replacements.json +5 -2
  65. package/content/templates/common-paper-order-form/selections.json +56 -0
  66. package/content/templates/common-paper-order-form/template.docx +0 -0
  67. package/content/templates/common-paper-order-form-with-sla/README.md +18 -0
  68. package/content/templates/common-paper-order-form-with-sla/metadata.yaml +149 -3
  69. package/content/templates/common-paper-order-form-with-sla/replacements.json +6 -2
  70. package/content/templates/common-paper-order-form-with-sla/selections.json +64 -0
  71. package/content/templates/common-paper-order-form-with-sla/template.docx +0 -0
  72. package/content/templates/common-paper-partnership-agreement/README.md +18 -0
  73. package/content/templates/common-paper-partnership-agreement/metadata.yaml +293 -4
  74. package/content/templates/common-paper-partnership-agreement/replacements.json +5 -2
  75. package/content/templates/common-paper-partnership-agreement/selections.json +138 -0
  76. package/content/templates/common-paper-partnership-agreement/template.docx +0 -0
  77. package/content/templates/common-paper-pilot-agreement/README.md +18 -0
  78. package/content/templates/common-paper-pilot-agreement/metadata.yaml +48 -0
  79. package/content/templates/common-paper-pilot-agreement/template.docx +0 -0
  80. package/content/templates/common-paper-professional-services-agreement/README.md +18 -0
  81. package/content/templates/common-paper-professional-services-agreement/metadata.yaml +338 -4
  82. package/content/templates/common-paper-professional-services-agreement/replacements.json +7 -4
  83. package/content/templates/common-paper-professional-services-agreement/selections.json +207 -0
  84. package/content/templates/common-paper-professional-services-agreement/template.docx +0 -0
  85. package/content/templates/common-paper-statement-of-work/README.md +18 -0
  86. package/content/templates/common-paper-statement-of-work/metadata.yaml +110 -2
  87. package/content/templates/common-paper-statement-of-work/replacements.json +4 -1
  88. package/content/templates/common-paper-statement-of-work/selections.json +55 -0
  89. package/content/templates/common-paper-statement-of-work/template.docx +0 -0
  90. package/content/templates/common-paper-term-sheet/README.md +18 -0
  91. package/content/templates/common-paper-term-sheet/metadata.yaml +48 -0
  92. package/content/templates/common-paper-term-sheet/template.docx +0 -0
  93. package/content/templates/working-group-list/template.docx +0 -0
  94. package/dist/cli/index.d.ts.map +1 -1
  95. package/dist/cli/index.js +47 -10
  96. package/dist/cli/index.js.map +1 -1
  97. package/dist/commands/checklist.d.ts +21 -1
  98. package/dist/commands/checklist.d.ts.map +1 -1
  99. package/dist/commands/checklist.js +176 -44
  100. package/dist/commands/checklist.js.map +1 -1
  101. package/dist/commands/list.d.ts.map +1 -1
  102. package/dist/commands/list.js +1 -46
  103. package/dist/commands/list.js.map +1 -1
  104. package/dist/commands/recipe.js +3 -11
  105. package/dist/commands/recipe.js.map +1 -1
  106. package/dist/core/checklist/format-checklist-docx.d.ts +10 -0
  107. package/dist/core/checklist/format-checklist-docx.d.ts.map +1 -0
  108. package/dist/core/checklist/format-checklist-docx.js +321 -0
  109. package/dist/core/checklist/format-checklist-docx.js.map +1 -0
  110. package/dist/core/checklist/index.d.ts +23 -14
  111. package/dist/core/checklist/index.d.ts.map +1 -1
  112. package/dist/core/checklist/index.js +83 -39
  113. package/dist/core/checklist/index.js.map +1 -1
  114. package/dist/core/checklist/jsonl-stores.d.ts +3 -0
  115. package/dist/core/checklist/jsonl-stores.d.ts.map +1 -0
  116. package/dist/core/checklist/jsonl-stores.js +16 -0
  117. package/dist/core/checklist/jsonl-stores.js.map +1 -0
  118. package/dist/core/checklist/schemas.d.ts +2 -2
  119. package/dist/core/checklist/schemas.js +1 -1
  120. package/dist/core/checklist/schemas.js.map +1 -1
  121. package/dist/core/checklist/state-manager.d.ts +146 -0
  122. package/dist/core/checklist/state-manager.d.ts.map +1 -0
  123. package/dist/core/checklist/state-manager.js +147 -0
  124. package/dist/core/checklist/state-manager.js.map +1 -0
  125. package/dist/core/checklist/status-labels.d.ts +6 -0
  126. package/dist/core/checklist/status-labels.d.ts.map +1 -0
  127. package/dist/core/checklist/status-labels.js +29 -0
  128. package/dist/core/checklist/status-labels.js.map +1 -0
  129. package/dist/core/engine.d.ts +1 -0
  130. package/dist/core/engine.d.ts.map +1 -1
  131. package/dist/core/engine.js +72 -11
  132. package/dist/core/engine.js.map +1 -1
  133. package/dist/core/selector.d.ts +2 -0
  134. package/dist/core/selector.d.ts.map +1 -1
  135. package/dist/core/selector.js +181 -39
  136. package/dist/core/selector.js.map +1 -1
  137. package/dist/core/template-listing.d.ts +40 -0
  138. package/dist/core/template-listing.d.ts.map +1 -0
  139. package/dist/core/template-listing.js +91 -0
  140. package/dist/core/template-listing.js.map +1 -0
  141. package/dist/core/validation/recipe.d.ts.map +1 -1
  142. package/dist/core/validation/recipe.js +47 -61
  143. package/dist/core/validation/recipe.js.map +1 -1
  144. package/dist/core/validation/template.d.ts.map +1 -1
  145. package/dist/core/validation/template.js +10 -2
  146. package/dist/core/validation/template.js.map +1 -1
  147. package/dist/index.d.ts +2 -0
  148. package/dist/index.d.ts.map +1 -1
  149. package/dist/index.js +4 -0
  150. package/dist/index.js.map +1 -1
  151. package/package.json +8 -2
  152. package/skills/cloud-service-agreement/SKILL.md +9 -0
  153. package/skills/data-privacy-agreement/SKILL.md +9 -0
  154. package/skills/edit-docx-agreement/CONNECTORS.md +20 -0
  155. package/skills/edit-docx-agreement/SKILL.md +77 -0
  156. package/skills/employment-contract/SKILL.md +9 -0
  157. package/skills/iso-27001-evidence-collection/CONNECTORS.md +39 -0
  158. package/skills/iso-27001-evidence-collection/SKILL.md +304 -0
  159. package/skills/iso-27001-evidence-collection/rules/api-exports.md +191 -0
  160. package/skills/iso-27001-evidence-collection/rules/evidence-types.md +107 -0
  161. package/skills/iso-27001-evidence-collection/rules/screenshot-guide.md +77 -0
  162. package/skills/iso-27001-internal-audit/CONNECTORS.md +39 -0
  163. package/skills/iso-27001-internal-audit/SKILL.md +275 -0
  164. package/skills/iso-27001-internal-audit/rules/access-control.md +191 -0
  165. package/skills/iso-27001-internal-audit/rules/business-continuity.md +94 -0
  166. package/skills/iso-27001-internal-audit/rules/change-management.md +211 -0
  167. package/skills/iso-27001-internal-audit/rules/encryption.md +93 -0
  168. package/skills/iso-27001-internal-audit/rules/incident-response.md +127 -0
  169. package/skills/iso-27001-internal-audit/rules/isms-management.md +164 -0
  170. package/skills/iso-27001-internal-audit/rules/logging-monitoring.md +96 -0
  171. package/skills/iso-27001-internal-audit/rules/people-controls.md +161 -0
  172. package/skills/iso-27001-internal-audit/rules/supplier-management.md +92 -0
  173. package/skills/nda/SKILL.md +9 -0
  174. package/skills/open-agreements/SKILL.md +9 -0
  175. package/skills/safe/SKILL.md +9 -0
  176. package/skills/services-agreement/SKILL.md +9 -0
  177. package/skills/soc2-readiness/CONNECTORS.md +39 -0
  178. package/skills/soc2-readiness/SKILL.md +301 -0
  179. package/skills/soc2-readiness/rules/change-vendor-management.md +104 -0
  180. package/skills/soc2-readiness/rules/communication-info.md +85 -0
  181. package/skills/soc2-readiness/rules/control-activities.md +95 -0
  182. package/skills/soc2-readiness/rules/control-environment.md +126 -0
  183. package/skills/soc2-readiness/rules/logical-access.md +264 -0
  184. package/skills/soc2-readiness/rules/monitoring-activities.md +66 -0
  185. package/skills/soc2-readiness/rules/optional-categories.md +264 -0
  186. package/skills/soc2-readiness/rules/privacy-criteria.md +359 -0
  187. package/skills/soc2-readiness/rules/risk-assessment.md +100 -0
  188. package/skills/soc2-readiness/rules/system-operations.md +170 -0
  189. package/skills/venture-financing/SKILL.md +9 -0
@@ -0,0 +1,301 @@
1
+ ---
2
+ name: soc2-readiness
3
+ description: >-
4
+ Assess SOC 2 Type II readiness. Map Trust Services Criteria to controls,
5
+ identify gaps, and build a remediation plan. Uses NIST SP 800-53 (public
6
+ domain) as canonical reference with SOC 2 criterion cross-mapping.
7
+ license: MIT
8
+ compatibility: >-
9
+ Works with any AI agent. Enhanced with compliance MCP server for live
10
+ status data. Falls back to embedded reference material when no live data
11
+ available.
12
+ metadata:
13
+ author: open-agreements
14
+ version: "0.1.0"
15
+ frameworks:
16
+ - SOC 2 Type II
17
+ - NIST SP 800-53 Rev 5
18
+ - ISO 27001:2022
19
+ ---
20
+
21
+ # SOC 2 Readiness Assessment
22
+
23
+ Assess readiness for a SOC 2 Type II audit. This skill walks through the Trust Services Criteria, identifies gaps, maps to NIST controls, and generates a prioritized remediation plan.
24
+
25
+ ## Security Model
26
+
27
+ - **No scripts executed** — markdown-only procedural guidance
28
+ - **No secrets required** — works with reference checklists
29
+ - **IP-clean** — AICPA Trust Services Criteria are publicly cited; descriptions are original writing
30
+ - **Evidence stays local** — all collection outputs go to local filesystem
31
+
32
+ ## When to Use
33
+
34
+ Activate this skill when:
35
+
36
+ 1. **First SOC 2 preparation** — building controls from scratch for initial Type I or Type II
37
+ 2. **Pre-audit readiness check** — 4-8 weeks before audit window opens
38
+ 3. **Gap analysis after scope change** — new systems, services, or trust criteria added
39
+ 4. **Remediation planning** — translating audit findings into actionable work items
40
+ 5. **Dual-framework mapping** — already pursuing ISO 27001 and need SOC 2 overlap analysis
41
+
42
+ Do NOT use for:
43
+ - ISO 27001 internal audit — use `iso-27001-internal-audit`
44
+ - Evidence collection mechanics — use `iso-27001-evidence-collection`
45
+ - Contract review — use legal agreement skills
46
+
47
+ ## Core Concepts
48
+
49
+ ### Trust Services Criteria (TSC)
50
+
51
+ SOC 2 is organized around 5 Trust Services Categories. **Security (CC)** is always in scope; others are optional based on your service:
52
+
53
+ | Category | Criteria | When Required |
54
+ |----------|----------|---------------|
55
+ | **Security** (CC) | CC 1-9 (33 criteria) | Always required |
56
+ | **Availability** (A) | A 1.1-1.3 (3 criteria) | SaaS with uptime SLAs |
57
+ | **Processing Integrity** (PI) | PI 1.1-1.5 (4 criteria) | Data processing services |
58
+ | **Confidentiality** (C) | C 1.1-1.2 (2 criteria) | Handling confidential data |
59
+ | **Privacy** (P) | P 4-8 (7 criteria) | PII processing |
60
+
61
+ ### SOC 2 vs. ISO 27001
62
+
63
+ | Dimension | SOC 2 | ISO 27001 |
64
+ |-----------|-------|-----------|
65
+ | Governing body | AICPA | ISO/IEC |
66
+ | Geography | Primarily US/Canada | Global |
67
+ | Type | Attestation report by CPA | Certification by audit body |
68
+ | Scope | Service-specific | Organization-wide ISMS |
69
+ | Controls | Flexible (you define) | 93 Annex A controls |
70
+ | Output | SOC 2 report (restricted/general use) | Certificate |
71
+ | Overlap | ~70% overlap with ISO 27001 Annex A | ~70% overlap with SOC 2 CC |
72
+
73
+ ### Decision Tree: Scope Selection
74
+
75
+ ```
76
+ What service are you getting audited on?
77
+ ├── SaaS product → Security + Availability (+ Confidentiality if you handle sensitive data)
78
+ ├── Data processing → Security + Processing Integrity + Confidentiality
79
+ ├── Infrastructure → Security + Availability
80
+ ├── API service → Security (+ PI if you transform data)
81
+
82
+ Do you handle PII?
83
+ ├── YES → Add Privacy category
84
+ ├── NO → Skip Privacy
85
+
86
+ Do you have uptime SLAs?
87
+ ├── YES → Include Availability
88
+ ├── NO → Optional (but customers expect it for SaaS)
89
+ ```
90
+
91
+ ## Step-by-Step Workflow
92
+
93
+ ### Step 1: Define Scope and Categories
94
+
95
+ 1. **Identify the service** being audited (product name, description, boundaries)
96
+ 2. **Select Trust Services Categories** using the decision tree above
97
+ 3. **Define system boundaries**: infrastructure, software, people, procedures, data
98
+ 4. **Document sub-service organizations** (cloud providers, payment processors, etc.)
99
+ 5. **Determine audit type**: Type I (point-in-time) or Type II (period of time, usually 6-12 months)
100
+
101
+ ### Step 2: Assess Current State
102
+
103
+ For each applicable Common Criterion (CC), assess whether controls are:
104
+ - **Designed** — control exists on paper
105
+ - **Implemented** — control is operating
106
+ - **Effective** — control achieves its objective (evidence exists)
107
+
108
+ ```
109
+ # If Internal ISO Audit MCP server is available (SOC 2 maps to ISO 27001 Annex A):
110
+ list_controls(domain="technological") # List tech controls (maps to CC 6-8)
111
+ get_control_guidance(control_id="A.5.15") # Get guidance for ISO control mapped from CC 6.1
112
+ get_nist_mapping(control_id="AC-2", direction="nist_to_iso") # Find ISO controls from NIST reference
113
+ search_guidance(query="incident response") # Search for controls matching SOC 2 criteria
114
+ ```
115
+
116
+ ### Step 3: Map Controls to Criteria
117
+
118
+ Each CC maps to specific NIST controls. Use this mapping to identify what you need:
119
+
120
+ #### CC 1 — Control Environment
121
+
122
+ | Criterion | Focus | NIST Controls | ISO Cross-Reference |
123
+ |-----------|-------|---------------|---------------------|
124
+ | CC 1.1 | Integrity and ethics | PS-1, PS-3, PS-6 | A.6.1, A.6.2, A.6.4 |
125
+ | CC 1.2 | Board oversight | PM-1, PM-2 | C.5.1, C.5.3 |
126
+ | CC 1.3 | Organizational structure | PM-2 | C.5.3 |
127
+ | CC 1.4 | Competence commitment | AT-2, PS-3 | A.6.1, A.6.3 |
128
+ | CC 1.5 | Accountability | PS-3, PS-4 | A.6.4, A.6.5 |
129
+
130
+ #### CC 2 — Communication and Information
131
+
132
+ | Criterion | Focus | NIST Controls | ISO Cross-Reference |
133
+ |-----------|-------|---------------|---------------------|
134
+ | CC 2.1 | Internal information | AU-2, SI-5 | C.7.5.1 |
135
+ | CC 2.2 | Internal communication | PM-2, AT-2 | C.7.4, A.6.3 |
136
+ | CC 2.3 | External communication | PM-1 | A.5.14 |
137
+
138
+ #### CC 3 — Risk Assessment
139
+
140
+ | Criterion | Focus | NIST Controls | ISO Cross-Reference |
141
+ |-----------|-------|---------------|---------------------|
142
+ | CC 3.1 | Risk objectives | PM-9, RA-1 | C.6.1.1 |
143
+ | CC 3.2 | Risk identification | RA-3 | C.6.1.2, C.8.2 |
144
+ | CC 3.3 | Fraud risk | RA-3 | C.6.1.2 |
145
+ | CC 3.4 | Change impact | RA-3, CM-4 | C.6.1.2, A.8.9 |
146
+
147
+ #### CC 4 — Monitoring Activities
148
+
149
+ | Criterion | Focus | NIST Controls | ISO Cross-Reference |
150
+ |-----------|-------|---------------|---------------------|
151
+ | CC 4.1 | Ongoing monitoring | CA-7, PM-6 | C.9.1 |
152
+ | CC 4.2 | Deficiency evaluation | CA-2 | C.9.2.1 |
153
+
154
+ #### CC 5 — Control Activities
155
+
156
+ | Criterion | Focus | NIST Controls | ISO Cross-Reference |
157
+ |-----------|-------|---------------|---------------------|
158
+ | CC 5.1 | Risk mitigation | AC-5 | A.5.3 |
159
+ | CC 5.2 | Technology controls | AC-1, IA-2 | A.5.15, A.8.5 |
160
+ | CC 5.3 | Policy deployment | PM-1, PL-1 | A.5.1, C.5.2 |
161
+
162
+ #### CC 6 — Logical and Physical Access
163
+
164
+ | Criterion | Focus | NIST Controls | ISO Cross-Reference |
165
+ |-----------|-------|---------------|---------------------|
166
+ | CC 6.1 | Access control | AC-2, AC-3, IA-2, SC-28 | A.5.15, A.8.5, A.8.24 |
167
+ | CC 6.2 | Access provisioning | AC-2, PS-4, PS-5 | A.5.18, A.6.5 |
168
+ | CC 6.3 | Access modification | AC-2, AC-6 | A.5.15, A.5.18 |
169
+ | CC 6.4 | Physical access | PE-2, PE-3, PE-6 | A.7.2, A.7.4 |
170
+ | CC 6.5 | Asset disposal | MP-6 | A.7.10, A.7.14 |
171
+ | CC 6.6 | Threat detection | RA-5, SI-4 | A.8.8, A.8.16 |
172
+ | CC 6.7 | Transmission security | SC-8 | A.5.14, A.8.24 |
173
+ | CC 6.8 | Malware prevention | SI-2, SI-3 | A.8.7, A.8.19 |
174
+
175
+ #### CC 7 — System Operations
176
+
177
+ | Criterion | Focus | NIST Controls | ISO Cross-Reference |
178
+ |-----------|-------|---------------|---------------------|
179
+ | CC 7.1 | Operational monitoring | CM-6, RA-5 | A.8.9, A.8.8 |
180
+ | CC 7.2 | Anomaly detection | AU-6, SI-4 | A.8.15, A.8.16 |
181
+ | CC 7.3 | Incident response | IR-4 | A.5.24, A.5.25 |
182
+ | CC 7.4 | Incident management | IR-5, IR-6 | A.5.25, A.5.26 |
183
+ | CC 7.5 | Recovery | CP-4, CP-9, CP-10 | A.5.30, A.8.13 |
184
+
185
+ #### CC 8 — Change Management
186
+
187
+ | Criterion | Focus | NIST Controls | ISO Cross-Reference |
188
+ |-----------|-------|---------------|---------------------|
189
+ | CC 8.1 | Change control | CM-3, CM-5, SA-3 | A.8.9, A.8.25, A.8.32 |
190
+
191
+ #### CC 9 — Risk Mitigation
192
+
193
+ | Criterion | Focus | NIST Controls | ISO Cross-Reference |
194
+ |-----------|-------|---------------|---------------------|
195
+ | CC 9.1 | Risk mitigation | CP-2, RA-7 | A.5.30, C.6.1.3 |
196
+ | CC 9.2 | Vendor management | AC-20, SA-9 | A.5.19, A.5.22 |
197
+
198
+ ### Step 4: Generate Gap Analysis
199
+
200
+ For each criterion, document:
201
+
202
+ ```markdown
203
+ ## Gap: [CC x.x] — [Brief description]
204
+
205
+ **Current State**: [What exists today]
206
+ **Required State**: [What the auditor expects]
207
+ **Gap**: [What's missing]
208
+ **Remediation**:
209
+ 1. [Specific action item]
210
+ 2. [Specific action item]
211
+ **Priority**: Critical / High / Medium / Low
212
+ **Effort**: [Days/weeks to remediate]
213
+ **Owner**: [Person responsible]
214
+ **Evidence Needed**: [What to collect after fix]
215
+ ```
216
+
217
+ ### Step 5: Build Remediation Plan
218
+
219
+ Prioritize gaps by:
220
+ 1. **Critical** — Audit will fail without this (CC 6.1, 6.2, 7.2, 7.5, 8.1)
221
+ 2. **High** — Likely finding if not addressed (CC 1.4, 3.2, 6.6, 7.3)
222
+ 3. **Medium** — Auditor will note but may not be a finding
223
+ 4. **Low** — Best practice, not strictly required
224
+
225
+ ### Step 6: Readiness Report
226
+
227
+ Generate a structured readiness assessment:
228
+
229
+ 1. **Executive summary** — overall readiness percentage, estimated time to audit-ready
230
+ 2. **Scope** — service description, trust categories, audit type
231
+ 3. **Control matrix** — all applicable criteria with status (designed/implemented/effective)
232
+ 4. **Gap analysis** — prioritized list of gaps with remediation plan
233
+ 5. **Timeline** — remediation milestones leading to audit window
234
+
235
+ ## Quick Reference: Top SOC 2 Failures
236
+
237
+ | # | Criterion | Common Failure | Fix |
238
+ |---|-----------|---------------|-----|
239
+ | 1 | CC 6.1 | MFA not universal | Enforce MFA on all systems with sensitive data |
240
+ | 2 | CC 6.2 | Access not revoked on termination | Automate deprovisioning; verify within 24h |
241
+ | 3 | CC 7.2 | No log monitoring | Configure alerts for auth failures, privilege changes |
242
+ | 4 | CC 8.1 | No change management | Require PR reviews; document deployment process |
243
+ | 5 | CC 7.5 | Backups never tested | Restore from backup quarterly; document results |
244
+ | 6 | CC 3.2 | No risk assessment | Conduct and document annual risk assessment |
245
+ | 7 | CC 6.6 | No vulnerability scanning | Deploy automated scanning; remediate criticals in 30d |
246
+ | 8 | CC 1.4 | Security training incomplete | Require annual training; track completion |
247
+ | 9 | CC 9.2 | Vendor risk not assessed | Maintain vendor register; collect SOC 2 reports |
248
+ | 10 | CC 7.3 | No incident response plan | Document plan; conduct tabletop exercise |
249
+
250
+ ## DO / DON'T
251
+
252
+ ### DO
253
+ - Start with Security (CC) criteria — they're always required and cover ~80% of effort
254
+ - Map to ISO 27001 if pursuing both frameworks — ~70% control overlap
255
+ - Collect evidence throughout the audit period, not just at audit time
256
+ - Include sub-service organizations in your description
257
+ - Define the audit period before starting evidence collection
258
+
259
+ ### DON'T
260
+ - Include trust categories you can't support — better to pass on fewer than fail on more
261
+ - Assume Type I is "easy" — it requires all controls to be designed and implemented
262
+ - Forget the system description — auditors review this first and use it to scope their testing
263
+ - Use generic/template control descriptions — auditors expect your controls to match your actual environment
264
+ - Ignore complementary user entity controls (CUECs) — your customers need to know their responsibilities
265
+
266
+ ## Troubleshooting
267
+
268
+ | Problem | Solution |
269
+ |---------|----------|
270
+ | First SOC 2, no existing controls | Start with CC 6 (access) and CC 8 (change management) — fastest to implement |
271
+ | Already have ISO 27001 | Map Annex A controls to SOC 2 CC; ~70% are already covered |
272
+ | Auditor requests evidence we don't have | Collect it now; document the process; note in description if control was implemented mid-period |
273
+ | Multiple environments (prod/staging/dev) | Only production environment needs to be in scope; document boundaries clearly |
274
+ | Sub-service org (AWS/GCP/Azure) | Use SOC 2 Type II report from the provider; document which controls they cover |
275
+
276
+ ## Rules
277
+
278
+ For detailed SOC 2-specific guidance:
279
+
280
+ | File | Coverage |
281
+ |------|----------|
282
+ | `rules/logical-access.md` | CC 6.1–6.8 — access control, provisioning, physical, threat detection |
283
+ | `rules/system-operations.md` | CC 7.1–7.5 — monitoring, anomaly detection, incident response, recovery |
284
+ | `rules/change-vendor-management.md` | CC 8.1, CC 9.1–9.2 — change control, risk mitigation, vendor management |
285
+ | `rules/control-environment.md` | CC 1.1–1.5 — governance, ethics, org structure, competence, accountability |
286
+ | `rules/risk-assessment.md` | CC 3.1–3.4 — risk objectives, identification, fraud risk, change impact |
287
+ | `rules/control-activities.md` | CC 5.1–5.3 — risk mitigation selection, technology controls, policy deployment |
288
+ | `rules/communication-info.md` | CC 2.1–2.3 — internal/external communication, information quality |
289
+ | `rules/monitoring-activities.md` | CC 4.1–4.2 — ongoing monitoring, deficiency evaluation |
290
+ | `rules/optional-categories.md` | A 1.x, PI 1.x, C 1.x — Availability, Processing Integrity, Confidentiality |
291
+ | `rules/privacy-criteria.md` | P 1.x–8.x — Privacy criteria (when PII in scope) |
292
+
293
+ ## Attribution
294
+
295
+ SOC 2 criteria mapping and readiness procedures developed with [Internal ISO Audit](https://internalisoaudit.com) (Hazel Castro, ISO 27001 Lead Auditor, 14+ years, 100+ audits).
296
+
297
+ ## Runtime Detection
298
+
299
+ 1. **Internal ISO Audit MCP server available** (best) — Live ISO 27001 control guidance with NIST cross-references. SOC 2 criteria map to ISO 27001 Annex A controls (~70% overlap); use `get_nist_mapping` for bidirectional lookup. Server: `internalisoaudit.com/api/mcp`
300
+ 2. **Local compliance data available** (good) — Reads `compliance/` directory with SOC 2 test metadata
301
+ 3. **Reference only** (baseline) — Uses embedded criteria mapping and checklists in `rules/`
@@ -0,0 +1,104 @@
1
+ # Change and Vendor Management — CC 8.1, CC 9.1–9.2
2
+
3
+ Per-criterion audit guidance for change control, risk mitigation, and third-party management.
4
+
5
+ ## CC 8.1 — Change control
6
+
7
+ **Priority**: Critical | **NIST**: CM-3, CM-5, SA-3 | **ISO**: A.8.9, A.8.25, A.8.32
8
+
9
+ Auditors assess whether changes to production systems follow a documented, consistent process — authorization, testing, approval, and deployment. This is one of the top 5 most-tested criteria. Expect auditors to select a sample of production changes and trace each through the full lifecycle.
10
+
11
+ **What auditors test**:
12
+ - Sample 10-15 production deployments: verify each had a code review, testing evidence, and approval before merge
13
+ - Segregation of duties: the person who writes code cannot be the sole approver and deployer
14
+ - Emergency change process: hotfixes still require documentation (even if retroactive)
15
+ - Rollback capability: evidence that changes can be reverted if issues arise
16
+ - Branch protection: direct pushes to production branch are blocked; force-push is disabled
17
+
18
+ **Evidence to prepare**:
19
+ ```bash
20
+ # GitHub: merged PRs with review status
21
+ gh pr list --state merged --limit 20 --json number,title,author,reviewDecision,mergedAt,mergedBy
22
+
23
+ # GitHub: branch protection rules
24
+ gh api repos/{owner}/{repo}/branches/main/protection | jq '{
25
+ required_reviews: .required_pull_request_reviews.required_approving_review_count,
26
+ dismiss_stale: .required_pull_request_reviews.dismiss_stale_reviews,
27
+ enforce_admins: .enforce_admins.enabled,
28
+ required_status_checks: .required_status_checks.contexts
29
+ }'
30
+
31
+ # GitHub: check for direct pushes bypassing PR process
32
+ gh api repos/{owner}/{repo}/commits --per-page=20 | \
33
+ jq '[.[] | select(.parents | length == 1)] | .[] | {sha: .sha[0:8], message: .commit.message[0:60], author: .author.login}'
34
+
35
+ # CI/CD: verify automated tests run on PRs
36
+ gh api repos/{owner}/{repo}/actions/workflows --jq '.workflows[] | {name, state}'
37
+ ```
38
+ - Change management policy document
39
+ - Emergency change procedure (when and how hotfixes are handled)
40
+ - Deployment runbook or CI/CD pipeline documentation
41
+
42
+ **Startup pitfalls**:
43
+ - Founders bypass branch protection using admin override — auditors see this in the commit history
44
+ - "We review in Slack" — verbal approvals aren't auditable; use PR reviews
45
+ - No emergency change process — every hotfix is undocumented and unreviewed
46
+ - Testing means "it works on my machine" — no automated test suite or staging environment
47
+
48
+ ---
49
+
50
+ ## CC 9.1 — Risk mitigation activities
51
+
52
+ **Priority**: High | **NIST**: CP-2, RA-7 | **ISO**: A.5.30, C.6.1.3
53
+
54
+ Auditors verify that identified risks have corresponding mitigation activities — controls, insurance, transfer, or documented acceptance. A risk register without linked mitigations is incomplete. The connection between risk assessment (CC 3) and concrete risk treatment is what auditors evaluate here.
55
+
56
+ **What auditors test**:
57
+ - Risk register entries include treatment decisions: mitigate, transfer, accept, or avoid
58
+ - Accepted risks have documented justification and management sign-off
59
+ - Mitigation controls are mapped to specific risks (traceability from risk to control)
60
+ - Business continuity plan addresses the organization's top operational risks
61
+ - Insurance coverage reviewed annually (cyber insurance, E&O, D&O as applicable)
62
+
63
+ **Evidence to prepare**:
64
+ - Risk register with treatment column (mitigate/transfer/accept/avoid) and control mapping
65
+ - Risk acceptance forms signed by management for accepted risks
66
+ - Business continuity plan covering top-5 operational risk scenarios
67
+ - Cyber insurance certificate of coverage (current policy period)
68
+ - Management review minutes where risk treatment decisions were discussed
69
+
70
+ ---
71
+
72
+ ## CC 9.2 — Vendor and third-party management
73
+
74
+ **Priority**: Critical | **NIST**: AC-20, SA-9 | **ISO**: A.5.19, A.5.22
75
+
76
+ Auditors verify that the organization identifies, assesses, and monitors third-party vendors who access, store, or process data on its behalf. This includes cloud providers, SaaS tools, payment processors, and contractors with system access. The vendor management program should be proportionate to risk.
77
+
78
+ **What auditors test**:
79
+ - Vendor inventory: comprehensive list of vendors with data access, criticality rating, and review dates
80
+ - Risk assessment for critical vendors: documented evaluation of security posture before onboarding
81
+ - SOC 2 or equivalent reports collected annually from critical vendors (cloud providers, data processors)
82
+ - Vendor contracts include security requirements, data handling terms, and breach notification clauses
83
+ - Ongoing monitoring: critical vendor reviews at least annually, not just at initial onboarding
84
+
85
+ **Evidence to prepare**:
86
+ ```bash
87
+ # GitHub: list third-party integrations
88
+ gh api orgs/{org}/installations --jq '.installations[] | {app_slug, permissions, events}'
89
+
90
+ # GCP: list external service accounts with access
91
+ gcloud projects get-iam-policy {project} --format=json | \
92
+ jq '.bindings[] | .members[] | select(contains("serviceAccount")) | select(contains("gserviceaccount.com") | not)'
93
+ ```
94
+ - Vendor register (name, service, data access level, criticality, last review date)
95
+ - Vendor SOC 2 Type II reports for critical vendors (AWS, GCP, Azure, Stripe, etc.)
96
+ - Vendor security assessment questionnaire template
97
+ - Data processing agreements (DPAs) with vendors handling personal data
98
+ - Vendor onboarding and offboarding procedures
99
+
100
+ **Startup pitfalls**:
101
+ - No vendor inventory — dozens of SaaS tools adopted without tracking who has data access
102
+ - Relying on "they're a big company, they must be secure" instead of collecting SOC 2 reports
103
+ - No DPAs with vendors processing personal data — GDPR and SOC 2 both require this
104
+ - Vendor review is one-and-done at onboarding — no annual reassessment
@@ -0,0 +1,85 @@
1
+ # Communication and Information — CC 2.1–2.3
2
+
3
+ Per-criterion audit guidance for information quality, internal communication, and external communication.
4
+
5
+ ## CC 2.1 — Internal information quality
6
+
7
+ **Priority**: Medium | **NIST**: AU-2, SI-5 | **ISO**: C.7.5.1
8
+
9
+ Auditors assess whether the organization generates and uses quality information to support the functioning of internal controls. This means security-relevant information — logs, metrics, reports, alerts — is accurate, timely, and available to the people who need it for decision-making.
10
+
11
+ **What auditors test**:
12
+ - Security-relevant information is generated: audit logs, access reports, vulnerability scans, incident records
13
+ - Information is accurate and complete: logs capture required fields (who, what, when, where)
14
+ - Information is timely: reports and dashboards are current, not stale exports from months ago
15
+ - Information systems are protected: audit logs cannot be modified or deleted by the users they track
16
+ - Data used for control monitoring is validated (e.g., access review data matches actual system state)
17
+
18
+ **Evidence to prepare**:
19
+ ```bash
20
+ # GCP: verify audit logging is enabled
21
+ gcloud projects get-iam-policy {project} --format=json | jq '.auditConfigs'
22
+
23
+ # GCP: verify log integrity (export to separate project or write-once sink)
24
+ gcloud logging sinks list --format=json | jq '.[] | {name, destination}'
25
+
26
+ # GitHub: audit log availability
27
+ gh api orgs/{org}/audit-log --jq '.[0:3] | .[] | {action, actor, created_at}'
28
+ ```
29
+ - List of security reports and dashboards with update frequency
30
+ - Audit log configuration showing required event types are captured
31
+ - Log integrity controls (separate storage account, write-once policies)
32
+
33
+ ---
34
+
35
+ ## CC 2.2 — Internal communication
36
+
37
+ **Priority**: Medium | **NIST**: PM-2, AT-2 | **ISO**: C.7.4, A.6.3
38
+
39
+ Auditors verify that security-related information — policies, responsibilities, changes, and expectations — is communicated effectively to all personnel. Internal communication isn't just "we have a wiki"; it's demonstrating that people actually receive and understand security requirements.
40
+
41
+ **What auditors test**:
42
+ - Security policies are communicated to all employees (not just published and forgotten)
43
+ - Onboarding includes security expectations, reporting procedures, and acceptable use
44
+ - Changes to security policies or procedures are communicated when they occur
45
+ - Regular security updates: newsletters, all-hands mentions, Slack announcements
46
+ - Employees in interviews can describe their security responsibilities and reporting channels
47
+
48
+ **Evidence to prepare**:
49
+ - Onboarding checklist showing security communication steps
50
+ - Security awareness communication records (email announcements, Slack messages, all-hands slides)
51
+ - Policy change communication evidence (email or message notifying staff of updates)
52
+ - Security training materials covering roles and responsibilities
53
+ - Internal security FAQ or knowledge base
54
+
55
+ **Startup pitfalls**:
56
+ - Security policies exist but nobody outside the security/compliance function knows about them
57
+ - Onboarding mentions security verbally but nothing is documented or acknowledged
58
+ - Policy changes happen silently — no communication when procedures are updated
59
+
60
+ ---
61
+
62
+ ## CC 2.3 — External communication
63
+
64
+ **Priority**: Medium | **NIST**: PM-1 | **ISO**: A.5.14
65
+
66
+ Auditors verify that the organization communicates security-relevant information to external parties — customers, regulators, vendors, and the public — through appropriate channels. This includes the system description, security practices, incident notifications, and contractual commitments.
67
+
68
+ **What auditors test**:
69
+ - Security practices communicated to customers: security page, trust center, or documentation
70
+ - SOC 2 report distribution process: how customers request and receive the report
71
+ - Incident notification: contractual obligations met for customer communication during incidents
72
+ - Regulatory reporting: process for notifying regulators of security events when required
73
+ - Vendor communication: security requirements communicated to third parties in contracts and onboarding
74
+
75
+ **Evidence to prepare**:
76
+ - Security page or trust center URL (public-facing security information)
77
+ - NDA or report request process for SOC 2 report distribution
78
+ - Customer-facing incident communication templates and procedures
79
+ - Contractual breach notification obligations inventory
80
+ - Vendor security requirements (contract clauses, questionnaire, or onboarding materials)
81
+
82
+ **Startup pitfalls**:
83
+ - No public security page — customers can't find any information about security practices
84
+ - SOC 2 report shared openly without NDA — report is meant to be restricted use
85
+ - Incident notification process undefined — scrambling to communicate during an actual incident
@@ -0,0 +1,95 @@
1
+ # Control Activities — CC 5.1–5.3
2
+
3
+ Per-criterion audit guidance for risk mitigation selection, technology controls, and policy deployment.
4
+
5
+ ## CC 5.1 — Risk mitigation selection
6
+
7
+ **Priority**: High | **NIST**: AC-5 | **ISO**: A.5.3
8
+
9
+ Auditors verify that the organization selects and deploys control activities that mitigate identified risks to acceptable levels. This is the bridge between the risk assessment (CC 3) and actual controls — each significant risk should trace to one or more controls. Segregation of duties is a key element auditors evaluate here.
10
+
11
+ **What auditors test**:
12
+ - Control activities are mapped to specific risks from the risk register (traceability)
13
+ - Segregation of duties: conflicting responsibilities are separated across different individuals
14
+ - Key incompatible functions identified and separated: access provisioning vs. access review, code development vs. deployment approval, payment initiation vs. payment approval
15
+ - Compensating controls documented where full segregation isn't feasible (common in small teams)
16
+ - Control design considers both preventive (stop it before it happens) and detective (find it after it happens) controls
17
+
18
+ **Evidence to prepare**:
19
+ - Risk-to-control mapping matrix (risk register entries linked to specific controls)
20
+ - Segregation of duties matrix identifying incompatible functions and how they're separated
21
+ - Compensating controls documentation for small-team exceptions
22
+ - Control design rationale for critical risks (why this control was selected over alternatives)
23
+
24
+ **Startup pitfalls**:
25
+ - No traceability between risks and controls — controls exist but aren't linked to specific risks
26
+ - Segregation of duties impossible with 3-person engineering team — document compensating controls instead of ignoring the requirement
27
+ - Only preventive controls, no detective controls — if prevention fails, there's no detection
28
+
29
+ ---
30
+
31
+ ## CC 5.2 — Technology general controls
32
+
33
+ **Priority**: High | **NIST**: AC-1, IA-2 | **ISO**: A.5.15, A.8.5
34
+
35
+ Auditors verify that technology infrastructure supporting the control environment is itself controlled. This covers IT general controls (ITGCs): access management for infrastructure, authentication mechanisms, and the foundational technology controls that other controls depend on.
36
+
37
+ **What auditors test**:
38
+ - Infrastructure access controls: who can access production servers, databases, cloud consoles
39
+ - Authentication strength: MFA enforced for infrastructure access (cloud console, SSH, VPN)
40
+ - Automated controls functioning correctly: CI/CD gates, automated access reviews, scheduled scans
41
+ - Dependency management: technology controls don't rely on manual processes that could be skipped
42
+ - Technology control monitoring: alerts when automated controls fail or are bypassed
43
+
44
+ **Evidence to prepare**:
45
+ ```bash
46
+ # GitHub: branch protection (automated control)
47
+ gh api repos/{owner}/{repo}/branches/main/protection | jq '{
48
+ required_reviews: .required_pull_request_reviews.required_approving_review_count,
49
+ required_checks: .required_status_checks.contexts,
50
+ enforce_admins: .enforce_admins.enabled
51
+ }'
52
+
53
+ # GCP: organization policies (automated guardrails)
54
+ gcloud resource-manager org-policies list --organization={org_id} --format=json | jq '.[].constraint'
55
+
56
+ # GitHub: required status checks (CI gates)
57
+ gh api repos/{owner}/{repo}/branches/main/protection/required_status_checks | jq '.contexts'
58
+ ```
59
+ - Infrastructure access control matrix (who has access to what, at what level)
60
+ - Automated control inventory (CI/CD gates, automated scans, scheduled reviews)
61
+ - Technology control failure alerting configuration
62
+
63
+ **Startup pitfalls**:
64
+ - All engineers have production database access "for debugging" — violates least privilege
65
+ - CI/CD pipeline has no required checks — tests are optional and frequently skipped
66
+ - Cloud console access not protected by MFA — "it's inconvenient" is not an acceptable justification
67
+
68
+ ---
69
+
70
+ ## CC 5.3 — Policy and procedure deployment
71
+
72
+ **Priority**: Medium | **NIST**: PM-1, PL-1 | **ISO**: A.5.1, C.5.2
73
+
74
+ Auditors verify that security policies and procedures are formalized, approved, communicated, and accessible to all relevant personnel. Policies must be living documents — reviewed periodically, updated when changes occur, and acknowledged by employees.
75
+
76
+ **What auditors test**:
77
+ - Information security policy suite exists: overarching policy plus supporting procedures
78
+ - Policies are approved by management (signature or formal approval record)
79
+ - Policies are reviewed at least annually and updated when significant changes occur
80
+ - Employees can access policies (intranet, shared drive, wiki) and know where to find them
81
+ - Policy acknowledgment: employees sign or electronically acknowledge reading policies
82
+ - Version control: policies have version numbers, effective dates, and review dates
83
+
84
+ **Evidence to prepare**:
85
+ - Policy inventory (list of all security-related policies with version, effective date, next review date)
86
+ - Signed management approval for each policy
87
+ - Policy acknowledgment records (employee signatures or electronic acknowledgment log)
88
+ - Policy distribution mechanism (shared drive link, wiki URL, HRIS integration)
89
+ - Policy review log showing annual review was conducted with any changes noted
90
+
91
+ **Startup pitfalls**:
92
+ - Policies exist in someone's Google Drive but aren't shared or discoverable
93
+ - No version control — impossible to prove which version was in effect during the audit period
94
+ - Policies never reviewed after initial creation — outdated content that doesn't match current practices
95
+ - Acknowledgment collected at onboarding but not when policies are updated