Act 4 · Ship
Thesis writes the spec. The PM approves. Your agents write the code.
As code gets cheaper, the spec is the bottleneck. Thesis generates it from the locked Thesis — evidence, constraints, and acceptance criteria included. Nothing ships without a human's approval.
spec-TH-014.md
# Scalable roles & audit trail (TH-014)
## Problem
- - 50+ seat accounts hit a ceiling: coarse permissions block delegation (MIX-0033, INT-2214).
- - Lost enterprise deals cite granular roles & audit logs; competitor Ridgeline shipped them in May (HUB-0871).
## Solution outline
- - Role hierarchy: owner / admin / member / guest.
- - Bulk assignment via CSV import + inline editor.
- - Audit log write-path + UI with export.
## API changes
- - POST /v1/roles/bulk — accepts CSV, returns per-row status.
- - GET /v1/audit-log — cursor-paginated, filterable by actor/entity.
- - PATCH /v1/members/:id — role transitions emit audit events.
## Acceptance criteria
- - ☐ Admin can reassign 200 roles via CSV in <60s.
- - ☐ Every role change emits an audit event within 500ms.
- - ☐ Audit log export completes for 100k events in <10s.
- - ☐ Admin WAU in 50+ seat cohort returns to baseline within 60 days.
## Rollout plan
- - Feature-flagged, 10% of 50+ seat accounts first.
## Out of scope
- - Billing changes, SSO revamp.
Generated by Thesis from TH-014 · 5 evidence links inline
PM
Approval required
The PM owns the bet.
Thesis never pushes anything a human didn't approve.
Claude Code
Linear · 1 epic + 5 tickets
MER-240★ Scalable roles & audit trail
📎 spec TH-014 · 5 evidenceMER-241Role hierarchy model
📎 spec TH-014 · 5 evidenceMER-242Bulk role assignment + CSV import
📎 spec TH-014 · 5 evidenceMER-243Audit log service (write-path)
📎 spec TH-014 · 5 evidenceMER-244Audit log UI + export
📎 spec TH-014 · 5 evidenceMER-245Permissions analytics instrumentation
📎 spec TH-014 · 5 evidencelocked→in development→shipped→outcome measured
Every ticket and every agent task carries its why. Six weeks from now, nobody asks "wait, why are we building this?"