Documentation Index
Fetch the complete documentation index at: https://docs.mnemom.ai/llms.txt
Use this file to discover all available pages before exploring further.
Operating governance signals
Governance signals are observations operators see and act on. This guide walks through the runbook.Daily flow
- Triage the open queue at
mnemom.ai/dashboard/teams/{teamId}/governance(or viamnemom governance signals list --team <id> --status open). - Acknowledge signals you’re investigating. Records
acknowledged_actor_roleper ADR-046 — captures whether you acted asorg_admin,team_admin, etc. - Resolve with a
resolution_status:action_taken— you made changes (rebalanced team, refreshed cards, …).wont_fix— known noise or out of scope.duplicate— same root cause as another signal.false_positive— detector misfire (file a debt item).self_resolved— the underlying condition cleared itself before you acted.
- Dismiss for noise: the signal is acknowledged but no action is needed and no resolution category applies cleanly.
Notification destinations
Configure where signals route off-platform. Each destination is one channel binding for an org.Slack
PagerDuty
dedup_key (governance-signal-{id}) — coalesced detections don’t create duplicate incidents.
Generic webhook
Test before you trust
Every destination supports a synthetic test signal:last_tested_at / last_test_status on the destination row. The dashboard surfaces the result inline.
Filter narrowing
Each destination has an optionalfilter that AND-folds with the matching escalation rule’s predicate. Useful for “only critical to PagerDuty, everything else to Slack”:
sources, severities, scopes, pattern_types. Absent key = match-all on that dimension.
Escalation rules
Rules bind a predicate to a list of destinations. When an inserted signal matches the predicate, the dispatcher routes to the rule’s destinations (intersected with each destination’s filter).source— exact source match.pattern_type— exact pattern_type match.severity_min/severity_max— bound on severity.scope— exact scope match.team_id— narrow to one team.threshold_count+window_minutes— rate-based gating: fire only if ≥ N matching signals occurred in M minutes.
Rate-gating example
“Page on-call only if 3+ critical signals fire in 5 minutes”:Dedup across rules
If two rules both route to the same destination, the dispatcher dedups — one Slack message per signal, not two. Each contributing rule’sfire_count and last_fired_at still get bumped.
Coverage rollup
GET /v1/orgs/:org_id/governance/coverage?days=30 returns a per-(source, severity) aggregate over the window:
open ratios may need ack-process tightening; sources with high volume may want filter narrowing on noisy destinations.
Auditing
Every state transition recordsacknowledged_actor_role (who acted, in what capacity) per ADR-046. resolution_status + action_taken provide the prose audit trail. The platform’s governance_audit_log table captures every governance mutation for full SOC2-shaped reconstruction.