4af7469523
* feat(onboarding): minimal input: orgnr + moms period is the whole ask
Two fixes from the third E2E attempt (2026-08-26):
1. accounting_method is now optional in CompanySetupSchema and defaults by
form in planCompanySetup: aktiebolag = accrual (the norm), enskild
firma = cash (the common small-EF choice; legal under 3 MSEK, BFL 4
kap 4 paragraf). The plan flags the default (resolved.accountingMethodDefaulted)
and gnubok_create_company's preview carries accounting_method_defaulted
so the readback names it and the user overrides in the same 'ja'.
Never silent: the preview is the checkpoint. Applies to the MCP tool
and POST /api/v1/companies (additive; response shows the resolved
value). The lookup tool's still_to_ask no longer lists it.
2. The agent refused a real orgnr because the user said 'nytt bolag' and
the registry showed an established company ('Stopp. Numret matchar
inte ett nytt bolag'): lookup instructions now state that an
established company with F-skatt/VAT is the NORMAL case (new = new to
Accounted) and the orgnr is never second-guessed for looking
established.
Skill + plugin (v1.2.1) updated; API skill regenerated; DECISIONS.md entry.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix(onboarding): surface the kontantmetod 3-MSEK condition on the defaulted cash method
Compliance-review finding on #1952: the EF cash default carries a legal
eligibility condition (turnover normally under 3 MSEK, BFL 4 kap 4 §)
that a client not reading the onboarding skill would never see. The
create preview now carries accounting_method_note with the condition
whenever cash was defaulted, and the v1 pitfall states it for API
integrators. The registry cannot verify turnover, so the confirm-time
human check is the gate; the default itself stays (a brand-new EF has
zero turnover by definition).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Jakob Wennberg <311770904+jakobwennberg-oss@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
34 lines
3.2 KiB
Markdown
34 lines
3.2 KiB
Markdown
---
|
|
description: Connect Accounted (create the account if needed) and set up the company from this conversation. Run once after installing the plugin.
|
|
---
|
|
|
|
The user just installed the Accounted plugin, or asked to get set up. Take them from "not connected" to "books are running" without sending them to the website first. Everything below happens in this conversation except the steps that legally need a human with BankID in a browser: creating the account, approving a bank consent, authorising Skatteverket.
|
|
|
|
## Step 1: connect
|
|
|
|
Call `accounted_get_agent_briefing`.
|
|
|
|
- If it succeeds, the user is connected and has a company: say so, summarise the company in one line (name, form, method, VAT period), and stop here. Point at `/accounted:start` for orientation.
|
|
- If it fails with an authentication error, the connector is not connected yet. Tell the user: run `/mcp`, pick **accounted**, and authenticate. The browser opens Accounted's sign-in. **No account yet? Create it right there** ("Skapa konto"): BankID is fastest (about a minute, no e-mail confirmation); e-mail + password also works and asks for a 2FA app before consent. On the consent screen, read-only scopes are pre-ticked; leave **Företag: skriv** ticked so the company can be created from here. Then continue with Step 2.
|
|
- If it fails with `NO_COMPANY_YET`, the account exists but has no company yet: continue with Step 2.
|
|
|
|
## Step 2: set up the company
|
|
|
|
Call `accounted_load_skill("onboarding")` and follow it. In short: ask for the **organisationsnummer** first and call `accounted_lookup_company`; the public registry answers most of the form (name, address, F-skatt, VAT status, legal form, fiscal year), so present those as facts to confirm and ask only what `still_to_ask` lists (typically only the moms period; the accounting method defaults by company form and is confirmed in the preview). Then call `accounted_create_company` **without** `confirm` to get a preview, read the preview back in plain Swedish, and only after an explicit "ja" call it again with `confirm: true`.
|
|
|
|
Rules the tool enforces, so do not argue with them: a VAT-registered company needs both an organisationsnummer and a moms period; F-skatt must be stated, never assumed; an enskild firma always runs on the calendar year.
|
|
|
|
## Step 3: connections
|
|
|
|
Call `accounted_connect_bank` and `accounted_connect_skatteverket`. Each returns a status and a link. The user opens the link in a browser where they are logged in to Accounted, approves with BankID, and comes back. Neither is mandatory to start: bank statements can also be imported as files, and declarations can always be downloaded and filed manually.
|
|
|
|
## Step 4: hand over
|
|
|
|
Call `accounted_get_agent_briefing` again to confirm the company is live, then point at the flows: `/accounted:bookkeep` once transactions arrive, `/accounted:check` for a health check, `/accounted:start` any time for orientation.
|
|
|
|
## Rules
|
|
|
|
- Never create a company "to try things out" for a real organisation: bookkeeping duty starts the moment it exists. Use the sandbox in the web app for demos.
|
|
- Never guess company facts. Every value in the preview came from the user or from the organisationsnummer lookup.
|
|
- Every write in Accounted stages for the user's approval; nothing is booked on its own.
|