The field loop

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.

Three rings · fixed rules · never ranked
My Work 3 owed 0 owed 3 2 1 0 owed Report · the day's log Inspections · Panel A3 Responses · snag #01 Fixed rules · never ranked Today, as recorded Waiting Filing 3 records HV cable termination Panel A3 · confirmed by A. Brennan Verified Snag #01 · door seal 33kV room · closed by M. Reid Closed Daily log · Tuesday Drafted from the day's records Submitted Marcus Reid Senior site engineer Waiting Nothing owed The day's log, drafted from the records. One press files it. Submit the daily log Submitted · 16:48 This week Streak 6 Streak 7 Six days closed. Today makes seven. W T F S S M T Yours, and no one else's.
Three rings · closed by work
Offline

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.

Outbox Hashed at capture, queued in order. Offline Queued 3 Synced Panel A3 · gland Photo · 2.1 MB Busbar joint · B2 Photo · 1.8 MB Torque check · B2 Confirmation · INS-003 Kept offline · ADC-HV · seven days A replay returns the same answer. Sync What the server did, in its own words Waiting Receiving 3 filed Panel A3 · gland Chunks reassembled · hash matched Filed Busbar joint · B2 Chunks reassembled · hash matched Filed Torque check · B2 Confirmed once · a replay adds no row Confirmed Nothing was retyped. Nothing was lost.
Queued, then answered
Reporting

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.
The day Tuesday 1 September Recording 5 events Busbar torque check verified07:12 Two photos filed · task 041209:40 Snag #01 raised · door seal11:26 HV termination verified13:05 After-photo filed for #0115:48 Five records. Nobody retyped them. Daily log Tue 1 Sep · Ashwick DC Open Approved 07:12 Busbar joint torque check at Section B2 verified. 09:40 Two photos filed against task 0412, Panel A3. 11:26 Snag #01 raised — door seal damaged, 33kV room. 13:05 HV termination, Panel A3 verified — one unclear. 15:48 After-photo filed for #01 and sent for review. 14 photos on the record Drafted from the records — a person approves. Approve the log Approved · A. Brennan · 17:05 Locks when the day closes
Records, not memory
Quality

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.
L. Doyle Raised it · 11:26 Raised Before Door seal damaged 33kV room · KRW-33 Major · due Friday Assigned to S. Kelly The before photo goes with it. S. Kelly The fixer Fixing In review After After-photo attached S. Kelly · 15:48 Send for review Sent · 15:48 He fixed it. He cannot close it. M. Reid Not the fixer In review Closed Before After After-photo attached Sent by S. Kelly · 15:48 Close snag Closed · 16:10 Two people. Two names. Both ends land in the day's log.
Fixer ≠ closer
On the phone

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.
S. Kelly The fixer Open After After-photo attached Sent for review · 15:48 Close snag Refused “S. Kelly sent this for review — a second person closes it.” M. Reid Not the fixer In review Closed Before After After-photo attached Sent by S. Kelly Close snag Closed · 16:10 The same rule, in the hand. With no radio it lands once. A. Brennan The reviewer Reading 1 unclear Confirmed Busbar joint torque Section B2 · S. Kelly Torque marks presentPass Bolt grade stampedPass Far gland visibleUnclear “Can't see the far gland.” Confirm Confirmed · A. Brennan The record says who decided.
Refused by name
In the hand

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.

01 · VOICE

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.

02 · GUIDED CAPTURE

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.

03 · THE MUSTER

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.

04 · PERMITS, RECEIVED

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.

05 · AND THE REST

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.

Review

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.
Review queue A. Brennan · 4 waiting Critical first Busbar joint torque — B2 S. Kelly · 07:02 · 3 checks HV termination — Panel A3 M. Reid · 14:31 · 3 checks Snag #01 · after-photo S. Kelly · 15:48 · review the fix Earth bar continuity — A Your own submission A second person reviews it. Busbar joint torque Section B2 · submitted by S. Kelly · 07:02 Reading 2 pass · 1 unclear 3 checks from the template Read in 3.8 s · evidence, not a decision Torque marks present Confidence 0.93 Pass Bolt grade stamped Confidence 0.89 Pass Far gland visible Confidence 0.41 Unclear “Can't see the far gland — one more photo settles it.” Confirm Confirmed · A. Brennan
Unclear goes to a person
Provenance

Evidence you can stand behind.

Every upload hashed on arrival; every record keeps who, when, where and which model.

01 · DUPLICATE GATE

Hashed on arrival

An exact duplicate of a project photo is flagged in capture, review and the wall.

02 · LINEAGE

Lineage on the record

Time, uploader, task, location on every photo; model and approver on every verification.

03 · FIRST RULE

Verify work, not workers

The analysis looks at tasks and assets: no per-worker AI metrics, no leaderboards, no ranked rings.

The current build

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.

olab · my work
The My Work screen in olab: three rings for report, inspections and responses, the owed items beneath them, and the week's strip
My Work — build 0.23.0, demo data
My Work on the olab phone app: the streak strip, the pace line, the three rings with five items to close, and the owed items beneath them
The More sheet on the olab phone app: permits, safety documents, safety, switching, electrical safety, forms, attendance, deliveries and the rest of the sections the phone can open
The day brief

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.

olab · my work · your morning brief

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.

Marcus Reid's morning brief — senior site engineer, ADC-HV and KRW-33 · 1:19

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.

Check the claims

The loop, in your numbers or live.

Your figures through this arithmetic — or the pilot, on one package.

Demo machine · drive capture → verify, live →