What do I
owe today?
Three rings — report, inspections, responses — computed from the responsibilities a person holds. They close by doing the work, and by nothing else.
The bar drops. The work doesn't.
Every write from the phone carries a device-minted id through one idempotent wrapper. A replay returns the recorded result, never a second row. A refusal is kept with its sentence and stays refused.
- The outbox is a link, so every screen inherits it.
- Photos hashed at capture, sent in resumable chunks.
- The proxy is filed as the photo now — a record can be confirmed on it.
- The full file swaps in on its hash, with a re-check strip.
- On a conflict the server wins on status; the phone wins on its own drafts.
Sync v1 runs on your own server with its own outbox. The PowerSync adapter is documented as data with a local stub; hosted sync comes with your accounts.
The daily log has already written itself.
Open the log and the day is already assembled from its records. The narrative drafts itself, labelled with its model; a person approves; the log locks.
- From records, not memory at six o'clock.
- The draft carries the model that wrote it.
- Printed report · history one click back.
Snags that take two people to close.
Whoever fixes it attaches the after-photo and sends it for review; someone else closes it. The API enforces that — and so does the phone.
- The fixer can never close their own snag.
- Both ends land in the day's log.
The rule survives the phone.
Snags, the review queue and the muster are on the phone behind the same gates the API holds. The fixer's own close is refused by name. Abstention is shown as itself. The gate's reasons sit under the button, before you press it.
- Refused by name, not greyed out without a reason.
- Unclear is a verdict — a person decides it.
- Queued with no radio, the close still lands exactly once.
What the phone holds now.
The desk's rules, the field's own paperwork, and the parts of the record a person meets at the work face.
Spoken, then corrected
A speech-engine seam with a labelled simulated stand-in. On-device recognition binds in a development build and cloud speech runs with your accounts. Transcripts file as drafts the speaker corrects; the audio is discarded on confirm unless the org keeps it, and original and translation are stored side by side. The guided voice-first daily log includes the German Bautagebuch preset. Transcripts never feed inference.
The shot the sheet needs
Capture prompts come from the ITR library's photo prompts per asset type — prompts, never gates. A multi-photo bundle's verdict names the frame each check was read from; ten-second clips are stored as evidence and never analysed. Annotation and redaction are derivatives that never touch the capture, and the original is re-hashed to prove it. Spoof heuristics are a labelled warning that never blocks a confirmation.
One person, one write
Members and accountless site labour on one list, one person per write so a refusal has an owner — and an induction refuses the muster by name once the register is in use. Per-shift briefings are signed down the line on the phone. Incidents and near misses take witness statements appended, never edited. Twelve toolbox talks are in our own words, with the regulators' free sources linked.
The document, at the work face
Permits issued to me; receipt and clearance, where the clearance asks about the additional earths; and the switching programme executed one step at a time and in order only, with the operator's re-authentication on the first step of a run. Issue is presence-gated at the other end — the issuer's device proves its position inside the site radius or scans the location tag, so a desk cannot issue one.
Four smaller rules, kept
- Push waits out quiet hours, the inbox snoozes, and auto-chase never chases the person who is waiting.
- A restricted-capture site verifies with no photo and no AI — and still needs a second person.
- The instrument picker disables an uncalibrated instrument and gives the register's reason.
- Crew hours are one crew, one activity, one day — never a person's hours or location.
Native builds, push and quick actions come with your accounts: EAS build profiles are ready, store submission waits on them.
AI gathers. People close.
What the analysis could not settle waits here with its evidence, a verdict per check, critical work first. A reviewer confirms, or rejects with a note to the field.
- A verdict per check, with its confidence.
- In-app capture attested; imports labelled.
- Self-review is off; decisions carry a name.
Evidence you can stand behind.
Every upload hashed on arrival; every record keeps who, when, where and which model.
Hashed on arrival
An exact duplicate of a project photo is flagged in capture, review and the wall.
Lineage on the record
Time, uploader, task, location on every photo; model and approver on every verification.
Verify work, not workers
The analysis looks at tasks and assets: no per-worker AI metrics, no leaderboards, no ranked rings.
The morning, as built.
My Work at the desk and in the hand, on the demo project — and the More sheet the phone generates from the desk's own navigation, pinned against it by a test.
Three minutes for the drive in, read from your own records.
Once the day is in, every person's morning is composed from what the record holds about their day and voiced for the road — at the head of My Work on the desk and the phone. These are the demo personas' own, generated from the demo world by the product's composer.
Every sentence is read from a row — the permits and switching programmes in that person's name, today's cards in order, the instrument about to lapse, what they filed since their last shift, what waits on them, the company's notices. No model writes a word; the voice is MiniMax Speech 2.8 Turbo through WaveSpeed, named on the record. It is heard by one person, it is never pushed, and whether it was played is that person's own bookmark.
Read the transcript
Good morning, Marcus. Your brief for today, ADC-HV and KRW-33. Your cards today. 3 cards are on your list today, 1 of them already overdue. First, Fire-stopping — basement penetrations row A, Cable Basement, ADC-HV, overdue, high priority. Second, HV cable termination — Panel A3, Switchroom A, ADC-HV, high priority. Third, Busbar joint torque check — Section B2, Switchroom B, ADC-HV, critical. 1 snag assigned to you is due today: Door seal damaged — 33kV room on KRW-33. 1 more card is coming up over the next week. Since your last shift. You filed 1 verification: 1 confirmed. You raised 1 snag. You submitted the daily log for ADC-HV, and it has been approved. You submitted the daily log for KRW-33. You signed 1 sheet. Waiting on you. 4 verifications are waiting for a reviewer on KRW-33 and ADC-HV. 8 notices in your inbox. The oldest: A colleague mentioned you on a record. That's your morning. Everything you heard was read from your own records, nothing was written by a model. Have a safe day.
The current build on demo project data. The phone runs in Expo Go or as a web preview; native builds wait on your store accounts.
The loop, in your numbers or live.
Your figures through this arithmetic — or the pilot, on one package.
Demo machine · drive capture → verify, live →