Compliance / SOC 2 Readiness Assessment

SOC 2 Readiness Assessment

Download PDF

Phase 10 control inventory mapped against the Trust Services Criteria.

SOC 2 Readiness Assessment — Habeo

Date: 2026-05-15 Phase: Phase 10 (kick-off) Target audit: SOC 2 Type 1, Q1 2027 Auditor: TBD (RFP out to three firms)

This document inventories the Trust Services Criteria (TSC) controls Habeo has in place as of Phase 10, mapped against the SOC 2 framework. It is the readiness gap analysis that precedes engaging an auditor — it tells us what to do next, not what's audited.


TSC Categories Covered


Control Inventory

CC1 — Control Environment

ID Control Status Evidence
CC1.1 Code of conduct 🟡 Draft Internal CoC drafted; needs board adoption when board exists
CC1.2 Security org structure 🟡 Solo founder Functional separation lands when team expands
CC1.3 Onboarding / offboarding workflow 🔴 Not started Q3 2026 (after first hire)
CC1.4 Vendor management 🟢 Done DPAs signed with Vercel, Neon, Clerk, Resend, Axiom, PostHog
CC1.5 Code of ethics enforcement 🟡 Implicit Formalize before audit

CC2 — Communication & Information

ID Control Status Evidence
CC2.1 Security policy publication 🟡 In progress /compliance route added in Phase 10
CC2.2 Customer comms — incidents 🟢 Done Notification SLA in HECVAT response (§15)
CC2.3 Internal security training 🔴 Not started Q4 2026

CC3 — Risk Assessment

ID Control Status Evidence
CC3.1 Risk register 🔴 Not started Q3 2026 — pre-audit
CC3.2 Threat modeling 🟡 Informal Per-phase architectural decisions in DECISIONS.md
CC3.3 Fraud risk consideration 🟡 Implicit RBAC + audit trail address core scenarios

CC4 — Monitoring Activities

ID Control Status Evidence
CC4.1 Continuous monitoring 🟢 Done Axiom log aggregation; alerts on error spikes
CC4.2 Internal audits 🔴 Not started Q1 2027 — quarterly cadence pre-audit
CC4.3 Vendor performance review 🟡 Ad-hoc Formalize quarterly

CC5 — Control Activities

ID Control Status Evidence
CC5.1 Segregation of duties (DB roles) 🟢 Done habeo_owner (migrations) vs habeo_app (runtime) since Phase 1
CC5.2 Code review 🟢 Done All PRs require approval; main branch protected
CC5.3 Change management 🟢 Done Conventional commits + Phase planning docs + Phase completion reports
CC5.4 Backup procedures 🟢 Done Neon point-in-time recovery, 30-day window, RPO 1h

CC6 — Logical & Physical Access

ID Control Status Evidence
CC6.1 Logical access — RBAC 🟢 Done Three roles; per-route requireRole() + per-row RLS; cross-tenant probe in CI
CC6.2 New user provisioning 🟢 Done Clerk-mediated; self-serve gated by ALLOW_SELF_SERVE_SIGNUP=true (off in prod)
CC6.3 User deprovisioning 🟢 Done Soft-delete via deleted_at; immediate session invalidation in Clerk
CC6.4 Physical access (data centers) 🟢 Inherited Neon + Vercel SOC 2 reports cover physical
CC6.5 Credentials management 🟢 Done Vercel encrypted env vars; no secrets in repo (.gitignore enforced)
CC6.6 MFA 🟢 Done Required for admin via Clerk
CC6.7 Privileged access 🟢 Done habeo_owner connection-string is migration-only; runtime never sees it

CC7 — System Operations

ID Control Status Evidence
CC7.1 Detection (monitoring + alerting) 🟢 Done Vercel function timeouts logged; PostHog event volumes anomaly-alert
CC7.2 Incident response runbook 🟡 Draft Formal runbook needed pre-audit
CC7.3 Vulnerability identification 🟢 Done Renovate + Snyk; CVE response SLA 24h
CC7.4 Patch management 🟢 Done Dependency PRs auto-opened and merged after CI
CC7.5 Backups 🟢 Done Same as CC5.4

CC8 — Change Management

ID Control Status Evidence
CC8.1 Code change approval 🟢 Done Branch protection on main; PR review required
CC8.2 DB migration approval 🟢 Done Migrations live in versioned Drizzle files; require PR review
CC8.3 Production deploy gating 🟢 Done CI must pass (typecheck + lint + tests + cross-tenant probe) before Vercel auto-deploy

CC9 — Risk Mitigation

ID Control Status Evidence
CC9.1 Disaster recovery plan 🟡 Draft DR runbook + quarterly tests
CC9.2 Vendor risk 🟢 Done DPAs in place; subprocessor list in HECVAT §16

A — Availability

ID Control Status Evidence
A1.1 Uptime monitoring 🟢 Done Vercel's built-in + a Better Stack ping every 60s
A1.2 Capacity planning 🟢 Done Fluid Compute auto-scales; Neon's autoscaling on
A1.3 Recovery testing 🟡 Ad-hoc Quarterly rehearsal lands pre-audit

C — Confidentiality

ID Control Status Evidence
C1.1 Data classification 🟡 Implicit Stripped-for-role helper marks financial fields; full data-classification policy is pre-audit work
C1.2 Data retention + disposal 🟢 Done Soft-delete + scheduled hard-delete after 30 days (audit trail retained)
C1.3 Encryption at rest 🟢 Done AES-256 via Neon
C1.4 Encryption in transit 🟢 Done TLS 1.3 only

Gap Summary

Green (15 of 41): Controls implemented + evidence accumulating in the normal course of operating the product.

Yellow (10 of 41): Implemented informally; needs formalization before audit (policy documents, training materials, recurring tasks).

Red (4 of 41): Not started. Most are people-process controls that need a team larger than one before they make sense.

Pre-Audit Work Estimate

Target: SOC 2 Type 1 report in hand by Q1 2027, with Type 2 observation window starting immediately after.


This document is updated each phase. Next review: Phase 12 (when the team is sized to support the people-process controls).