Skip to content

Audit

Every officer command writes a row to the audit_log collection. Use this command when something looks weird later ("did I really mark that payment undone?") — there's a timestamped record of every action with the actor, target, and details.

/audit

Full action history for one brother.

Usage: /audit <member> [limit]

Argument Required Description
member yes The brother to look up
limit no Max entries (default 25, max 100)

Output: ephemeral. Each entry shows action label, timestamp, actor, summary of details, and the ID of the affected record.

Action labels you'll see:

Glyph Action When
đŸ’ĩ Payment logged /log_payment
â†Šī¸ Payment undone /undo_payment
âœī¸ Payment memo edited /edit_memo
📎 Receipt attached to payment /attach_receipt kind:Payment
📉 Deduction logged /deduct_dues
â†Šī¸ Deduction undone /undo_deduction
🎁 Donation logged /log_donation
🤝 Promise made /promise
❌ Promise cancelled /cancel_promise
✅ Promise fulfilled /mark_paid
💔 Promise broken (auto, daily)
👋 Onboarded /onboard
đŸšĢ Deactivated /deactivate_member
🏠 Assigned to room /assign_room
đŸšĒ Unassigned from room /unassign_room
📝 Other catch-all

What's recorded

For each entry: actor_id (who ran the command), action (dotted lowercase string like payment.log), target_member_id (the brother affected), target_id (the affected record's ID), details (a dict of key facts — amount, method, dates), and at (UTC timestamp).

The audit log is append-only — there's no /undo_audit_entry command. Even undone payments leave their audit trail visible.

The XLSX export (/export_dues) includes a "Audit" sheet with the most recent 500 actions.