| name | go-live-arming |
| description | The executable go-live procedure for CRM Mission Control auto-execution โ the CRM_AUTO_EXECUTE (admission) and CRM_DISPATCH_ARMED (dispatch) gates, the L0โL3 autonomy ladder, and the founder/Board arming checklist. Use whenever touching the CRM approval-processing route, the auto-exec matrix or executor, or when asked to arm, enable, dispatch, or go live with autonomous CRM execution โ or to confirm a change is still dormant. |
Go-live arming (CRM Mission Control)
The CRM system-of-action can convert a lead, commit an opportunity, merge a
client. Every one of those is a real prod mutation, so the whole path ships
dormant and is armed by an explicit, ordered, Board-gated procedure โ never
as a side effect of a merge. This skill is that procedure and the gates it
flips. Arming is never autonomous: if a task would flip either flag, stop and
escalate to the Board.
The doubly-inert stack (three independent layers)
A CRM approval only causes a mutation when all three are satisfied. Any one
unset โ no mutation, no schema, no prod change.
- Admission gate โ
CRM_AUTO_EXECUTE (master kill switch).
apps/web/src/lib/crm/auto-exec-matrix.ts evaluateAutoExecute(). Unset or
anything but the literal '1' โ every evaluation returns
{ safe: false, reason: 'kill_switch_off' }. This is the prod default.
- Dispatch gate โ
CRM_DISPATCH_ARMED (the Board go-live flip).
apps/web/src/lib/crm/crm-auto-executor.ts isCrmDispatchArmed(). Unset or
โ '1' โ no dispatch, even for an admitted approval. The route runs the
executor only behind admitted && armed.
- Executor registry โ
resolveSubjectExecutor() (same file). Returns
null for every subject except (and only when a founder
context is passed). A null executor is safe: never
mutates and returns . So
even fully armed, L2/L3 have no executor to run.