From 31st-ai
Bootstrap a new or re-run QuickBooks Online client by verifying the environment, pulling 12 months of transaction history, building vendor and customer account baselines, and seeding agent memory after CPA approval. Activate when the user mentions onboarding, bootstrapping, new client setup, learning from history, or re-running onboarding analysis.
How this skill is triggered — by the user, by Claude, or both
Slash command
/31st-ai:client-onboardingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
| Situation | Start at |
| Situation | Start at |
|---|---|
| New client or explicit re-run request | Step 1 |
| Bootstrap already completed, no re-run | Stop — report existing bootstrap date/counts |
| Re-run requested on completed bootstrap | Confirm before overwriting |
agentMemory(operation="read", type="bootstrap_status", key=realmId)
cpaReviewed=true and no re-run request → stop and report existing bootstrap date/countsqbMasterData(entityType="Account") — verify these 4 required accounts exist with exactly one active match each: Accounts Payable, Accounts Receivable, Undeposited Funds, Retained Earnings. Missing or duplicate → flagForReview.
lookbackStartDate = today − 12 months; run one qbFetchTransactions per type:
Expense, Bill, BillPayment, Invoice, SalesReceipt, ReceivePayment, Deposit, JournalEntry, Transfer
0 results for all types → ask to expand window or stop (batch: flagForReview).
Vendor expense profiles (one per vendorId):
Customer income profiles (one per customerId):
5-criteria autonomous eligibility — profile is eligible for autonomous inference only if ALL pass: (a) ≥3 prior transactions in last 365 days (b) dominant account ≥70% (c) no second account ≥20% (d) amounts within 5× median of dominant-account transactions (e) most recent dominant-account transaction <180 days old
Profiles failing any criterion → mark autonomousEligible=false; downstream skills will flagForReview for those entities (CONSISTENCY RULE GUARD).
Recurring JE patterns — identify repeated description/line structure (depreciation, accruals); always autonomousEligible=false — propose only, never auto-post.
Transfer routes — common source → destination account paths.
Present to CPA:
Ask: "Reply 'approve' to activate these mappings, or tell me which to edit or exclude."
Batch/async: never ask mid-run → flagForReview(aiReasoning="CPA approval required before activating bootstrap-derived mappings for realm [realmId]; batch/async cannot ask mid-run.")
cappedUpvotes = min(frequency, 5) — prevents over-confidence in bootstrap data.
agentMemory(operation="write", type="vendor_mapping", key=vendorId, value={
vendorName, expenseAccountId, transactionType, frequency,
amountRange: {min, max, avg}, upvotes=cappedUpvotes,
source="bootstrap", autonomousEligible
})
agentMemory(operation="write", type="customer_mapping", key=customerId, value={
customerName, incomeAccountId, transactionType, frequency,
amountRange: {min, max, avg}, upvotes=cappedUpvotes,
source="bootstrap", autonomousEligible
})
agentMemory(operation="write", type="recurring_journal_pattern", key=patternId, value={
descriptionPattern, lineStructure, frequency,
amountRange: {min, max, avg}, upvotes=cappedUpvotes,
source="bootstrap", autonomousEligible=false
})
agentMemory(operation="write", type="transfer_route", key=routeId, value={
sourceAccountId, destinationAccountId, frequency,
amountRange: {min, max, avg}, upvotes=cappedUpvotes,
source="bootstrap", autonomousEligible
})
agentMemory(operation="write", type="bootstrap_status", key=realmId, value={
date: today, counts: txnCountsByType, cpaReviewed: true
})
flagForReview for those entities) ✓autonomousEligible=false ✓amountRange stored per entity (downstream: amount >3× stored range → MATERIALITY GUARD flags) ✓bootstrap_status.cpaReviewed=true ✓cappedUpvotes=5 max — prevents bootstrap history from over-weighting historical frequency in autonomous decisionsautonomousEligible=false — propose at month-end, never auto-postflagForReview for those entitiesamountRange stored during onboarding enables MATERIALITY GUARD — transactions >3× the stored range get flagged automatically by downstream skillsagentMemory writesnpx claudepluginhub naga-deepledger/31st-ai-plugin --plugin 31st-aiProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.