vibeapp.win

The apps

The tax assistant

Reads a small company's accounts and lists legal tax rules worth checking, each with a source, and refuses to answer without one.

  • Since 23 September 2026
  • Page updated 3 October 2026
  • Traced to 8 sources
The tax assistant's overview: a side menu with findings, opportunities, assets, import, questions, facts and sources, and two company cards with every detail covered.

The tax assistant on 3 October 2026. Everything about the companies is covered with grey boxes: names, numbers, dates and findings. The app's name and the signed-in user are hidden too.

What it is

The tax assistant is a private app for one owner of a small Norwegian business. You upload the company’s accounts in the standard Norwegian export format, add a few facts the accounts cannot know, and the app lists tax rules that may apply: legal deductions, reliefs and wealth-tax questions that are easy to overlook.

Every item comes with the passage of law or official guidance it rests on, a link, and the date it was fetched. Every amount is marked as an estimate. Anything in a grey zone says to check with an adviser. The app gives no advice of its own, and nothing that depends on hiding something from the tax authorities is in scope.

How it works

The rules are plain code. Each one reads totals from the accounts and rates from data files, where every rate has its own source. The language model never decides whether a rule applies.

Claude does two things: explain a finding in plain words, and answer questions in a chat. For the chat, the app first searches its own collection of fetched official pages and sends Claude only those passages. The answer must cite them. An answer with no citations, or with citations to passages it was not given, is thrown away and the user is told no source was found.

The spec was written and the app was running behind a login on the same day, 23 September 2026. That pace left open work, and the task list records it: most of the catalogue is still a checklist, and guidance for the bookkeeping software waits for the owner to verify it.

Not tax advice. This describes a personal software project.

What we expected, and what happened

Read it like a code review. Each removed line is something we expected, from a plan, a spec, a README or a code comment. The added line under it is what the history shows actually happened.

Expected: The project file told the reader to start from a spec, a rule catalogue and a task list.

Happened: None of the three were in the repository. They were written from the project file and the platform notes. Rates and the rule catalogue were researched against official sources, every value carries a verified flag, and a decision note records the gap so the owner could review it.

Expected: The project file first said the app would call the model through the paid API.

Happened: Revised the same day to call Claude Code as a process, so usage runs on the subscription, with the API key removed from the environment before every call. A test checks it.

Expected: The command that reports Claude's login status would tell the app whether Claude is available.

Happened: Tested against the real command line, it reported logged in for any token, including an invalid one. Readiness now comes from a real, very small call, cached for ten minutes.

Expected: No source, no finding: every finding and every answer must cite a source.

Happened: Held up, and is enforced in three places: in code, by a database rule that rejects a finding without a source, and by rejecting answers whose citations are not among the passages retrieved. In a live check, a question about deducting a cabin was refused.

Expected: The settings page checks whether Claude is available.

Happened: It made a real model call on every page load, which took 1.5 to 2.5 seconds. Now it uses the cached status and loads in about 15 milliseconds. Another page went from 616 KB to 214 KB the same day.