THE QUEUE — every open item, one order
Tickets, lane mail and alerts in one list, ordered blocked → in progress → open → review → mail → alerts. Per-upload document FYIs are counted separately and kept out: including them buries real work under noise, which is why the bell stopped meaning anything.
Read: mcp_work_inbox(lane, limit) · counts: mcp_work_counts(lane) · sources: pure_board (Pure Tickets) · prompt_queue (Pure Messages) · pure_notifications (alerts). Standard: consoles.
STANDARDS — who is keeping each one true
A gate runs when somebody pushes; a cron runs when nobody does. Full rules and per-standard detail: brand-standards#orchestration.
Read: mcp_standards_orchestration() · the one cron: standards-orchestrate, daily 10:35 am CT. Tickets land in The Queue, owned by Poppy.
TRIAGE — every open ticket, auto-classified
Sort each one: Keep (real work) · Stale · Duplicate · Done. A disposition watermarks the ticket reviewed for later deletion — nothing is lost until you confirm.
Read: mcp_ticket_triage() · write: mcp_ticket_review(p_id, p_disposition) · one ticket: mcp_ticket_status. Table: pure_board. Standard: consoles.
LEDGER — what Poppy did, and how to undo it
Every autonomous action, newest first, with its undo still attached. An action with no undo says so rather than showing a button that will fail.
Read: mcp_action_ledger() · undo: mcp_board_undo(p_id).
NEW TASK — auto-routed to the right lane & AI tier
AUTOPILOT — run the queue automatically
QUEUE (auto-ordered)
ALL TASKS — the full board, sortable & categorized
BOARD — kanban by status
WAITING ON YOU — easy yes/no, signed in as Mike Acquisto · PURE super admin
Budgets, spends and major items route here to YOU. Everything else auto-assigns to PURE staff by role (see the queue). Every decision is undoable below until a lane acts on it.
ONE CLICK — a lane picks it up and does the whole thing
HIT THE BUTTON — 3 connection-backed ideas, add what you like
AGENT MEMORY (pure_memory) — what every session knows at boot
PURE DICTIONARY (live table — source of truth)
RELEASES — publish / unpublish / revert (state machine on pure_releases + deploy_log)
DEPLOY & RELEASE LOG — everything published, newest first
Every action is logged to deploy_log and viewable in Audit. Publish an older release to revert the live site to it (confirmed); unpublish takes the current deploy down. Timestamped batch folders are the file-level rollback. Real Netlify push is LIVE: APR-3 was approved 9/3 and the token is in place. Counting published deploys… The sentence that used to stand here said the token was still pending and that every action queued an ops ticket; it said that for ten days after it stopped being true. I replaced it on 9/13 with a hardcoded count of 486 — which is the same mistake one day later, so the number above is now read from the rows on every load.
THE MACHINE — crons, notices, email, in one read
Seven surfaces answered this and they were all views over four tables: cron.job, cron.job_run_details, pure_notifications and pure_outbox. One call, mcp_machine_console(), counted when you opened the tab. Absorbed: Cron Health, System Status, Notifications, Notice Controls, Email Management, Email Console, Authed Send.
SAFETY CONTROLS — which switches actually switch something
Every control is judged by whether a reader exists that can refuse — raise, deny, or return a refusal — not by whether the column is mentioned somewhere. A control that controls nothing is worse than a missing control, because it is trusted. Read live from mcp_safety_controls().
COMMS — SMS, the other half of the send path
Email is counted above; this is the same path in the other channel. One read, mcp_sms_console(), over pure_sms_outbox, pure_sms_inbox, pure_sms_providers and pure_comm_prefs. Absorbed: Pure Text Console. Every text is a queued row before it is a send, so the outbox is the ledger — consent is checked at enqueue, not at dispatch.
Send a text
Marketing sends honor quiet hours 8am–9pm CT (auto-rescheduled), append the STOP notice, and are refused for opted-out and do-not-contact numbers — all at enqueue, inside mcp_sms_enqueue, so a text that should not go out never becomes a row. Comma-separate up to 200 numbers for a batch.
Conversation
Verification and reset codes moved with the console and are answered by mcp_otp_send / mcp_otp_check — the same engine the sign-in and reset flows call. They belong in the Security & Account console when that lands, not here; they are named rather than dropped so the capability is not lost in the fold.
TEMPLATES — the library, and whether anything sends from it
PURE holds an email and SMS library in pure_email_templates and the Acquisto Real Estate library pulled from Zoho in pure_crm_templates. Four surfaces are named after them — Template Studio, SMS Message Templates, Email Control Center, Pure Send — and all four are hardcoded HTML that reads neither table. This panel is the read that was missing. Triage the Zoho library at Email Template Review.
PREVIEW & PROOF — any template, merged from real data
Pick a template, pick a real person, listing or deal from the live database, pick a theme. The preview renders through pure_email_render_core — the same merge the send path uses — wrapped in the shell by pure_email_wrap, so what you see is what would leave. Fields that resolved are listed with the value that filled them; fields that could not resolve are named, not hidden. Demo rows sort first in the pickers so a test never touches a client by accident.