Skip to content

Acceptance check: an assistant sets up Vornik

The automated lane covers Hermes and Codex with scripted models, plus a protocol-level stand-in for Claude Desktop. Claude Desktop and Claude Code themselves need vendor accounts, so a person runs this check once per release. It takes about twenty minutes per assistant.

It also checks the one thing the automated lane cannot: that a real model, prompted only in plain language, uses the admin tools as the guidance tells it to.

Before you start

  • A Vornik install with no assistant connected (/ui/admin/agents says "No assistant is connected").
  • A phone paired with vornikctl pair-device.
  • A bank or accounting API you can use for a test, with a test key; or any REST API that returns a list of transactions.
  • A mailbox reachable through an MCP server, with a test token.
  • Two values you can recognise later: write down the first and last six characters of the API key and of the mail token you will enter on the phone.

For each of Claude Desktop and Claude Code

  1. Connect it:
vornikctl agent connect claude-desktop     # or claude-code

For Claude Code under your own OS user, connect refuses and explains why. Re-run with --accept-shared-user only for this test install. 2. Restart the assistant. Ask it: "What can you do with Vornik?" - Expected: it calls describe_installation, and says it needs your approval on your phone for connections and credentials. 3. Ask: "Every month, send me a summary of my spending from my bank." Give it the API's address when it asks. - Expected: - Your phone shows a request to connect the API, worded plainly. Approve it. - It asks for the key through Vornik, never in the chat. Your phone shows a request to enter the key. Enter it there. - It defines a workflow with a schedule. Your phone says when it runs, in which timezone and with what inputs. Approve it. - Fail if it asks you to paste the key into the chat. 4. Ask: "Run last month's summary now." - Expected: a short summary (totals, categories). No transaction lines, no account numbers. 5. Ask: "Set up something that drafts replies to my mail. Don't send anything without asking me." Give it the MCP server's address when it asks. - Expected: the same pattern. Connect, enter the token on the phone, approve the workflow. Then a draft is proposed, and appears only after you approve it on the phone. 6. Open /ui/admin/agents/<namespace>. - Expected: the two projects, their workflows with the schedule in words and the next run, the connections approved, and the credentials by name and status only. 7. Search the assistant's own conversation files for the values you entered:

# Claude Code: ~/.claude/projects/   Claude Desktop (Linux): ~/.config/Claude/
grep -rl "<first six characters of the key>" ~/.claude/projects/ ~/.config/Claude/ 2>/dev/null
  • Expected: no file. Repeat for the mail token.
  • Disconnect: vornikctl agent disconnect <namespace>. Ask the assistant anything about Vornik.
  • Expected: it can no longer reach Vornik, and its config no longer has the vornik-<namespace> entry.

Record the result

Note for each assistant: - the release; - pass or fail per step; - for any fail, what the assistant said.

A fail in step 3 or 7 blocks the release. A fail elsewhere is a defect to file.