From quantobooks
Foundation guardrails for every QuantoBooks workflow — confirms the active QBO client before any read, picks the right tool tier (quanto_* over qbo_*), and gates every write behind explicit confirmation. Other QuantoBooks skills load this implicitly; you can also invoke it directly when you want to switch clients or verify which books you're looking at.
How this skill is triggered — by the user, by Claude, or both
Slash command
/quantobooks:quanto-client-contextThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Every other QuantoBooks skill begins by following the rules below. They are not optional. A bookkeeper losing trust in the agent — because it pulled the wrong client's books, called a slow `qbo_*` tool when a `quanto_*` answer existed, or wrote a journal entry the user never approved — sets the whole product back. Read this once at the start of any QuantoBooks-related conversation and follow it...
Every other QuantoBooks skill begins by following the rules below. They are not optional. A bookkeeper losing trust in the agent — because it pulled the wrong client's books, called a slow qbo_* tool when a quanto_* answer existed, or wrote a journal entry the user never approved — sets the whole product back. Read this once at the start of any QuantoBooks-related conversation and follow it for the rest of the session.
On the first tool call of a QuantoBooks workflow:
get_active_client_info. If it returns no active client, call list_clients and ask the user which one to use, then switch_client.list_clients, surface the matches, and ask which to switch to before continuing.After a switch_client, re-echo the new active client before proceeding.
For reads, always try quanto_* first. They are:
LOW | MEDIUM | HIGH | CRITICAL) and reviewer context that raw QBO data does not have.Fall back to qbo_* only when:
quanto_* equivalent (e.g., qbo_employee_*, qbo_transfer_*, AR/AP aging detail reports)._create/_update/_delete is QBO-only.When you fall back, say so out loud: "Quanto doesn't have an aged-receivables view, so pulling this live from QBO." The user should always know which surface answered.
A write is any qbo_*_create, qbo_*_update, qbo_*_delete, or qbo_company_info_update. Before calling any of them:
Id / SyncToken.If the server is in READ_ONLY mode the write tools will not be registered. If a user asks for a write that isn't available, say so plainly — don't substitute a read.
When a quanto_* tool returns rows with risk_level of HIGH or CRITICAL, do not bury them. Lead the response with them. The user is paying for Quanto's review layer specifically to know what to look at first.
Some firms run their client/workflow management in Karbon. When a client's books are connected to a Karbon record, Quanto ingests that practice-management context into the same knowledge base the review tools read from, exposed through a separate tool tier:
| Tool | What it returns |
|---|---|
karbon_client_profile_query / _get | The client's Karbon profile — entity type, fiscal year end, tax basis, line of business, registration numbers, and free-text notes on the client record. The richest single source of "who is this client". |
karbon_work_item_query / _get | Engagement work items — what the firm is doing for this client (monthly close, year-end, etc.), with status, assignee, and due dates. |
karbon_note_query / _get | Relationship notes accountants have written about the client. |
karbon_note_comment_query / _get | Threaded discussion on those notes. |
How to use this tier:
karbon_* call as "check if there's useful context here" — if it returns nothing, move on silently. Never report missing context as an error, and never invent context that isn't there.karbon_client_profile and karbon_work_item are populated at connect time, so they're the reliable day-one sources. karbon_note / karbon_note_comment accumulate as the firm works in Karbon.firm_clients row is mapped to a Karbon record.If the user's request would produce a destructive or irreversible action (deleting a transaction, voiding an invoice, changing the company tax setting), pause and confirm even if a literal reading of the instruction allows it. "Delete that bill" gets one extra confirmation step. Never delete more than one transaction in a single batch without itemizing them.
Authoring rule for other skills: start with the line "Follow the rules in quanto-client-context first." Do not duplicate the rules; reference them. If a skill needs to override one of them (rare), say so explicitly and explain why.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub quantotechnologylabs/quantobooks-skills --plugin quantobooks