<!-- Source: https://lazyjack.app/guide/how-it-thinks.md -->

# How LazyJack thinks

This chapter is the mental model. Read it once and the screens will make sense; skip it and some of them will seem to be missing something (a Status field, a Delete button, a Places page) that is deliberately somewhere else.

## One boat, one owner {#one-boat}

An account holds one sailboat. There is no fleet view, no second boat, and today no second person: the owner signs in, and an assistant connected over MCP acts on the owner's behalf with the access the owner gave it. Inviting family or a co-owner with their own sign-in is not available (as of 2026-10-11).

LazyJack is a record, not an instrument. It does not read the boat's sensors, does not plot a course and does not judge whether the boat is fit to sail. It tells you what the record says: what is due, what is broken, what is expiring, what was done and when.

## The five areas {#areas}

Everything is under five areas, in the sidebar on a wide screen and in the bar at the bottom of a phone.

| Area | Views | What is there |
|---|---|---|
| Today | Today | What needs attention now, engine hours, the next trip or the trip underway, recent activity |
| Work | Work, Budget, Projects | Jobs and problems, plans, money by month and expenses, projects |
| Logbook | Trips, People | Trips planned, underway and done; the people who sail with you |
| Boat | Equipment, Inventory, Documents, Checklists | What is on the boat, what is in the lockers, papers and manuals, checklists |
| Account | Account | Sync, assistants, backup and restore, archived items, your profile |

Two pages have no navigation item of their own. **Boat details** (the boat's name, dimensions, papers and photo) opens from the boat's name at the top of the sidebar or the phone's header. **Places** (the saved spots a trip leaves from or arrives at, the home marina among them) opens from the search box, from Boat details' home port, from a trip's From and To, and from "Manage places…" wherever a place is chosen. Places are kept out of the way because they are made as a side effect of trips, rarely visited for their own sake.

The search box (⌘K or Ctrl K, or `/`) finds any record, any page and the common actions by name.

## Words {#words}

Each thing has one word in the app. The data and the MCP tools use older names, listed here so you can match an assistant's tool call to what you see.

| In the app | Means | In the data and MCP tools |
|---|---|---|
| trip | A sail, planned, underway or done, with its log | `voyage`, `voyage_log_entry` |
| equipment | A thing fitted to the boat: engine, pump, radio, life raft | `equipment` |
| reading | The engine's hours at a moment, taken from its meter | `reading`, `meter` |
| job | One piece of work to do once, on a date or at an engine-hours count | `maintenance_task` |
| plan | A repeating schedule that makes the next job when one is done | `maintenance_plan` |
| problem | Something wrong, found aboard, open until fixed or dismissed | `defect` |
| item | A spare, a consumable or a tool kept on board | `inventory_item` |
| inventory | The page and the area for the items | `inventory` |
| kit | A set of items gathered for a trip, a project or a standing purpose | `inventory_kit` |
| document | A file or a link: a manual, a receipt, a photo, a paper | `document`, `asset` (the file itself) |
| place | A saved position with a name; one of them is home | `waypoint` |
| person | Someone who sails with you | `crew` |
| checklist | A list to run before departure, on arrival, for the engine or any other time | `checklist_template` (the list), `checklist_run` (one run of it) |
| project | A larger piece of work with an estimate, expenses and jobs under it | `project` |
| expense | Money planned, committed or paid | `expense` |
| Tell someone | A note of who was told you are out and when you expect to be back | `float_plan` |

Verbs are as fixed as nouns. **Add** makes a record from a form (Add equipment, Add item). **Record** captures something that happened (Record a problem; the Record menu in the top bar gathers these). **Plan, Start, Log and End** are the trip verbs and only those. **Attach** links a document to a record.

## Rows and pages {#rows-and-pages}

Every list is made of rows that look and behave the same way.

- **A row opens the record's page.** Tap anywhere on it. A record with no page of its own (a checklist, a place) opens its form instead.
- **A row carries at most one button**, the one thing done to that record most often: Did the job, Start a checklist, Open a document, Ordered an item.
- **Everything else is in the row's More menu** (the three dots): the rare actions and the destructive ones, Edit and Archive or Delete last.
- **A record's page has the same shape**: an icon, the kind of record, the title, one line of status, the one or two main actions, a pencil to edit, and More.
- **The normal state shows nothing.** A trip that is completed, a plan that is active, equipment in service, an expense that is planned: no pill, no label. A pill means something is out of the ordinary.
- **A count is shown once**, beside the page title or on a tab. "Equipment · 24" means 24 active items.
- **Back takes you to where you came from**, the list as you left it, with its search and filter still applied.

## Statuses are actions {#statuses}

No form has a Status field. A record's status changes when you take the action that changes it, from its page or its row's More menu, and the status words say what happened.

| Record | How its status changes |
|---|---|
| problem | Schedule fix (a job is made for it), Keep watching, Mark fixed, Not a problem, Reopen |
| job | Did the job, Not now (deferred to a date or an engine-hours count) |
| plan | Pause, Resume |
| project | Mark planned (from an idea), Start, Done, Cancel, Back to planned |
| expense | Committed, Paid, Cancel |
| trip | Plan a trip, Start a trip, End trip, Log a trip (for one already over), Cancel trip |
| checklist run | Complete checklist, Cancel checklist |

Equipment is the exception that proves the rule: its **In service / Out of service / Spare** status is a fact about the item, not a step in a workflow, so it is a field on the form. Something being wrong with a piece of equipment is never a status: it is a **problem**, recorded against it, with its own life until fixed.

## Archive, Delete and history {#archive-and-delete}

LazyJack keeps history. Nothing you did is lost by default.

- **Archive** removes a record from the lists and keeps it, with everything that happened to it. Archived records are on the Account page under Archived items, where most kinds can be restored.
- **Delete** removes a record for good. It is offered in two cases: for a record that is already archived (from Archived items), and directly, in place of Archive, for a record made in the last 24 hours that nothing else depends on. A row's menu therefore says Delete for something you just added by mistake, and Archive for anything older.
- **A record in use cannot be deleted.** "Fuel filter is still used by 2 plans. Remove it from them first." A piece of equipment a plan names, a person on an active trip, a checklist a plan lists, a document attached to a record: each keeps the thing it refers to from being deleted.
- **Some records go together.** Deleting an engine deletes its meter and readings; deleting a plan deletes the jobs done under it; deleting an item deletes its stock history; deleting a trip deletes its log. The app says so before it does it.
- **Readings are never edited.** A wrong engine-hours reading is corrected: the old one is voided and a new one recorded, both kept.
- **Stock changes are never edited either.** A wrong receipt or use is undone with a reversing entry, both kept.

## Offline and sync {#offline-and-sync}

The app works at the boat with no signal.

- **Each device keeps its own copy** of the whole record, in the browser, per signed-in user. Everything you see is read from it; every change is made to it first.
- **Changes queue and sync when they can.** A change made offline is pushed when the device is back online, when the app is opened, and after each accepted change. The server's copy is pulled on opening the app, on reconnecting, after a push, when the tab becomes visible, and every minute, so a change made on your phone, on another device or by an assistant appears without a reload.
- **Photos and files queue too**, and survive closing the app. A photo is made smaller on the device before it is saved; a file over 25 MB is refused.
- **A change the server refuses is never dropped quietly.** It stays in **Sync problems** on the Account page, with the server's reason in plain words, and the header's sync badge points there. You choose: **Try again**, **Apply to latest** (for "changed elsewhere": re-point your change at the record's current version), or **Discard**.
- **The same record edited on two devices** is the usual cause. The second device's change is refused as "changed elsewhere" and waits in Sync problems for your decision.
- **Two devices can each start a trip offline.** The app stops a second trip being started on one device; it cannot stop two devices. Any trip underway can be ended from its own page, so nothing is stuck.
- **Clearing or restoring the boat on one device makes every other device's copy stale.** A stale device discards its unsynced changes and reloads the current copy, saying how many changes and files it dropped. This is deliberate: after a restore the same records exist again, and an old change applied a second time would be wrong. Sync before you clear or restore.

## Equipment and engine hours {#equipment}

- **Type is the one classification.** Choosing "Diesel engine" or "VHF radio" also decides the system (Propulsion, Navigation & communications) the item is listed under. There is no separate category.
- **Three facts about an item:** its status (In service, Out of service, Spare), its condition (Unknown, Good, Fair, Poor, Failed) and its importance (Essential, Important, Useful). Importance decides how loudly Today reports the item when it is out of service or failed; it does not change where a job or a problem on it is grouped.
- **Engine hours are readings on a meter.** An engine gets a meter when it is set up; a reading is the hours at a moment. A reading may not be lower than the one before it. Readings come from Add a reading, from logging or ending a trip, from a log entry's Engine hours field, and from an assistant.
- **"Service or expiry due"** is a date on a piece of equipment (a life raft's service, a flare's expiry, an EPIRB's battery) that Today reports as it approaches, separate from any plan. **Mark done** on the equipment page records the date it was done and the next one. Use it for things serviced by others on a certificate's date; use a **plan** for work you do and want a job for.

## Work: plans, jobs and problems {#work}

- **A job is done once.** It has a due date, or a due engine-hours count, or both, and an estimate of what it will cost in labour and services (items from stock are priced from the inventory). **Did the job** records when, at what engine hours, what it cost, who was paid, which items were used and which documents to keep. A cost becomes an expense.
- **A plan makes the next job.** "Engine oil and filter, every 100 hours or every year" is a plan; each time its job is done the next one is made: an "every N days" plan counts from the day the job was done, a monthly, yearly or seasonal rule from the day it was due, and an engine-hours plan from the hours it was done at. A plan can be paused.
- **A problem is something wrong.** It has a severity and an equipment it concerns. From it you **Schedule fix** (a job carrying the problem as its reason), **Keep watching** it, **Mark fixed** or decide it is **Not a problem**.
- **Not now** defers a job to a date or an engine-hours count. A deferred job is not reported until then. On a job that fixes a medium or low problem, Not now quiets the problem too, never a high or critical one.
- **Work has three groups.** **Do first**: overdue, or serious. **Soon**: due within 30 days, or a problem that is open but not serious. **Later**: everything else, including deferred jobs and problems you are watching. Today shows Do first and Soon; the Work badge counts Do first.

## Trips {#trips}

- **Four verbs.** **Plan a trip** (a date, from, to, who is coming). **Start a trip** (now, from a planned one or fresh). **End trip** (engine hours, anything that went wrong, where you arrived). **Log a trip** (one already over, in one form, with its readings and problems).
- **One trip underway at a time**, on a device. The Today card shows it, with Add to log, Something's wrong and End trip.
- **Positions come from four sources:** the phone's location, a saved place, a point picked on the map, or typed coordinates. A position within 300 m of a saved place is shown by the place's name; one that is not can be saved as a place. The phone's location never replaces a place, a map pick or typed coordinates.
- **Engine hours typed on a trip are readings**, not notes. A log entry's Engine hours field records a reading for the trip; the entry itself stores no hours. The trip page lists readings among the log entries.
- **Problems found on a trip** are recorded with Something's wrong: one problem, and one log entry at that time and position pointing at it.
- **Tell someone** is a section of the trip page: who was told, when you expect to be back, a note. It is marked overdue on Today once that time has passed.

## Inventory and To buy {#inventory}

- **An item is a kind of thing**; its stock is how many are where. Stock changes by **Received**, **Used**, **Move** and **Count** (set what is really there). An item nobody has counted is **Not counted**, and the app assumes none aboard.
- **The shopping list is a guess until the items are counted.** To buy puts **Count these first** at the top for that reason.
- **Ordered** adds an order to the item (how many, when, from whom). Orders are a list on the item, shown on the On order tab; **Received** against an order takes the quantity off it.
- **Buy later** keeps an item off the shopping list until a month you choose.
- **A purchase is an expense** when Received has a price and "Record as an expense" is ticked.
- **Undo** on a stock entry adds a reversing entry; both stay in the history.
- **A kit** gathers items for a trip, a project or standing use, and says what is missing.

## Money {#money}

- **One currency per boat**, chosen at the first run and changed in Boat details. Every amount is in it: prices, costs, estimates, expenses, the purchase price. There are no exchange rates; a quote in another currency is kept in notes, not stored as a number.
- **Costs become expenses**: a job's cost when it is done, a purchase when it is received, each linked back to the job or the receipt.
- **Budget, By month**, forecasts the months ahead from what is still unpaid: open jobs' estimates, plans' coming occurrences, planned and committed expenses, repeating expenses, projects' remaining estimates, and items the plans and kits will need that are not in stock. What is paid is shown apart, striped, never inside the expected total. A month in the past shows only what was paid.
- **Expenses**, the second tab, is where a year's actual spending is read.

## Documents and papers {#documents}

- **A document is a file or a link**, with a type (manual, receipt, photo, registration, insurance, ownership, licence, certificate, survey and more), an optional expiry and tags.
- **A document attaches to anything**: equipment, an item, a plan, a job, a trip, a problem, a project, an expense, a person, or nothing, which makes it the boat's own. One document, many attachments; a record shows its documents in a Documents section.
- **The boat's papers** are the registration, insurance, ownership and licence documents, and any certificate or survey attached to nothing but the boat. Boat details shows them in fixed slots with their expiry. Today reports a paper that is expiring or expired.
- **Open** shows a PDF, an image or a text file in a new tab. Anything else (a Word file, a spreadsheet) is saved, because the browser has nothing to show it with.

## What Today claims, and what it does not {#today}

Today reports what the record says needs attention: overdue and upcoming jobs, open problems, expiring papers and equipment dates, equipment out of service or failed, checklists left in progress, items to buy or count, a Tell someone past its time, and a change the server refused. It groups them as **Do first** and **Soon**, and says "Needs attention · 6" or, with nothing reported, "Ready for now".

It makes no claim about the boat being fit to sail. "Ready for now" means the record reports nothing; it does not mean the boat is seaworthy, and an assistant connected to LazyJack is told never to say so either.

The rest of Today: engine hours per engine with when they were last read, the trip underway or the next planned trip within a week, a row of things to record, checklists, and recent activity.

## Your data {#your-data}

- **Download a copy** (Account, Backup) gives one zip: `data.json` with every record, every file, a `README.md` describing the format, and `index.html`, a page you can read or print without the app.
- **Restore from a backup** puts that zip back into an account with no boat. An account with a boat must be cleared first; the Backup card offers a download before it clears.
- **Reset this device** clears this browser's copy and loads it again from the account. Unsynced changes are lost. Works offline.
- **Clear all data** removes the boat and everything recorded for it, from every device and the server, and keeps your sign-in. **Delete account** removes the sign-in too. Both ask you to type a word.

## Not in this chapter {#not-here}

How to connect an assistant and what it may do: [Assistants](assistants.html). Step-by-step connection for a particular assistant: the [assistant guide](../assistant-guide.html). What is stored where and for how long: the [app privacy notice](../app-privacy.html).
