Which branch needs help first?
The answer is spread over five tables.
Deliveries, tickets, reviews, stock, and shifts. An admin joins them by hand, so the morning goes to finding the problem instead of fixing it.
Katipunan, Cubao and Alabang need help first.
| Branch | On-time | Bad reviews | Urgent | Stockout | Absent |
|---|---|---|---|---|---|
| KATKatipunan | 65.8% | 4 | 5 | 15 | 7.2% |
| CUBCubao | 63.9% | 13 | 3 | 1 | 4.4% |
| ALBAlabang | 66.3% | 7 | 3 | 15 | 4.3% |
| ORTOrtigas Center | 62.6% | 9 | 2 | 14 | 3.1% |
One query core, two doors.
The pane reads data without a model turn. The agent reads the same data through MCP. They cannot disagree.
plugin.jsplugin_api.pystore.dbSKILL.mdserver.pyOne tool, one business question.
11 tools: 9 read and 2 write. No tool takes raw SQL, and each write is logged to ops_actions.
- Read · 9 tools
branch_scorecardEvery branch on seven measureslist_open_ticketsUrgent first, then oldestlist_unreplied_bad_reviewsWith the review textlist_stockout_risks2 days of cover, no order cominglist_expiring_stockWithin 3 days, cost at risklist_supplier_slipsPromise versus real lead timelist_recent_actionsPast escalations and draftsdescribe_sandboxTables, columns, and row countslist_branchesBranch codes, cities, and delivery- Write · 2 tools, after a yes
escalate_ticketRaise to urgent, log the reasondraft_review_replySave a draft, never publish
The same briefing every morning.
It triggers on plain requests like "what needs attention". Pane buttons send narrow requests that skip straight to one action.
- Score every branch with the scorecard
- Pick three by combined rank, like the pane
- Drill down only where a branch was picked
- Check history so nothing is done twice
- Propose at most three actions and ask
- Act only after an explicit yes
A pane that looks like part of Hermes.
- Built from Hermes components and theme colors
- Click a branch to see its tickets, reviews, and stock
- Escalate and Draft reply hand off to the agent
- "Recorded by Hermes" lists every write

Live: from a click to a changed record.
- Click"Brief me" in the pane
- PromptThe pane writes into the chat
- SkillHermes calls the MCP tools in order
- ApproveThe agent shows the ticket and waits
- RefreshThe pane shows the logged write
Every action cites what it read.

TKT-01393 has waited 33 days at Katipunan. The agent proposes the escalation with that number as the reason.
Nothing is written until the admin answers yes.
The same answers, from your phone.
Seven read commands skip the model and share the pane's query core. /bantay asks the agent and still waits for a yes.
- Read · no model turn
/briefTop 3 branches to help first/ticketsUrgent first, then oldest/reviewsBad reviews with no reply/stockouts2 days of cover, no order coming/expiringWithin 3 days, cost at risk/suppliersPromise versus real lead time/actionsPast escalations and drafts- Agent · after a yes
/bantay <request>Runs the skill, asks before writing
What the agent can touch, and what it cannot.
Two writes only.
Escalate a ticket or save a reply draft. No delete, no publish, no edits to other tables.
Every write is logged.
Each one adds a row to ops_actions with the reason, and the pane shows it.
A person says yes first.
The skill asks "Go ahead?" with the exact text. Running a write twice changes nothing.