Add funds
1. remove card
2. remove bank and venmo
IMG_5190.png
@desk this one never got tracked — can you record it? the screenshot above is the screen Shlok means.
Recorded as D-36 — your screenshot is on the item, since it only lived on the first message of this thread before.
Add money sheet (onboarding funding step): remove “Add using Card” and “Bank or Venmo”
The option labels are my reading of the screenshot; Shlok’s message gave only the heading and the two numbered points.
One thing I could not settle: the screenshot pins the onboarding funding step, but there is an Add money sheet under Home too. Onboarding only, or both? Only Shlok can say — passed to the engineer rather than chased here.
Most bug reports die in the channel. This one didn’t.
desk reads the room the way a support engineer would: it searches what you already track before it files a report from the channel, keeps the screenshot, writes down what it worked out — and says plainly when it couldn’t.
It files, it asks, and it hands you the record.
It writes the record
Title, body, the screenshot, and which product it belongs to — the money app, or the desk itself. Before it files anything from the channel the desk searches what is already tracked, and when it judges the report is something we have, it says so: the new item is flagged against the one it matches, and the reporter is told which. That is the desk’s reading of the report, not a rule the code enforces — which is why it writes down what it searched.
It asks, rather than guessing
When the report does not say enough to act on, it asks the one question that unblocks it — in the place the report came from, while the reporter still remembers. A question it cannot ask there goes to the one person configured as the desk’s owner.
You tell it; it decides
Your agent does not operate the desk. There is no claim tool and no status tool: it says what happened, in words, and the desk works out what that means for the ticket. Work that is finished but not yet in anyone’s hands lands here — fix ready, not shipped.
Your coding agent gets the record, not a notification.
The desk exposes eight MCP tools and not one of them changes a ticket. Five read the record, two hold a conversation with the desk, and one hands it a file. The plugin ships them alongside the knowledge of how to use them — which parameter names are real, and which decisions are still the desk’s.
# in Claude Code — the marketplace is private, cloned with your git credentials /plugin marketplace add Aroha-Labs/claude-plugins /plugin install desk@arohalabs # no key and no environment variable: the first tool call opens # a browser, you sign in with the same login the dashboard uses, # and a consent screen asks whether the client may act as you # you need a desk account, not just a login — the sign-in # is gated on an invite and on staff # then, in the session /desk:pick-work
The grant asks for read and write. Write does not unlock a tool — it decides whether the desk may act on what you tell it. With read alone the desk will answer you perfectly well and nothing on the backlog will move.
Filter the backlog by status, kind, product, priority or words.
The whole record — body, both message visibilities, events, files, version.
A question about the record, answered with the items and citations it was drawn from — or “not known”, which is a real answer.
What the desk flagged on its own: a reporter waiting, a question nobody answered, an entry gone stale.
Say what happened. You get a receipt, not an answer — the desk decides what it means.
The reply, and a list of what the desk actually did. expect minutes
The ticket is closed by the build that carried it.
It writes the release notes
A successful Xcode Cloud archive posts itself to the desk — one script in the iOS app’s repo, and iOS is the only build track the desk records today. The desk asks GitHub what changed between that build and the one before it, writes the notes, and moves what the build actually delivered to done. The first build recorded for a product has nothing to compare against, so it gets no notes. Anything it cannot place in the build stays exactly where it is.
It uses the tools you connect
Point it at an MCP server over HTTP and its tools reach the desk’s own runs. What the model is told is the description the server gave at the moment a person armed it — a server that rewrites its description tomorrow waits for somebody to accept the diff. What comes back is marked as someone else’s content, never as instructions.
It keeps what it learns
Curated entries about the product, each carrying the sources it was written from; an entry with no source is refused outright. One that has not been re-read in a long time is flagged in the answer that cites it. Nothing is deleted on a timer.
“Did not set an open question: the scope question is really Shlok’s to answer and Hamid cannot speak for him — so it was passed to Hamid to take to Shlok.”
That is an internal note on D-36, written for whoever reads the item next rather than for the reporter. A tracker records what you tell it. This one tells you what it could not work out — which is the part that usually goes missing between the channel and the commit.