Route 02 · identity sheet · 11:20, the round is running
If the rep will not open it, nothing was proven.
Route 02 treats adoption as the whole problem. It is drawn in the only face already licensed and sitting inside the repository, on warm paper with a deep indigo ink, one terracotta accent, and a state language that refuses to use red — because in this product the person reading the status is the person being judged by it. Built to convert the field rep first, and the manager who has to ask for adoption second.
01 · The mark
One letter, argued as a movement.
- Grid
- 48 units square, six-unit modules. The arms are strokes 5.4 units wide with round caps, so every end reads as a fingertip rather than a cut.
- The one imbalance
- The right arm starts at y 10 and the left at y 13, and the right arm stops 1.6 units short of the left one's axis. This is the only inexactness in the mark, and it is deliberate: a day never runs symmetrically, and a mark that looks measured would belong to route 01.
- The node
- A 9.8-unit terracotta circle at the meeting point, sitting 0.6 units below the line the arms actually cross on — placed by hand, not snapped. It is the only place the accent enters the mark, and it stands for the one visit that mattered today.
- Clear space
- Six units on every side. The round caps already soften the edge, so the clear space is measured from the cap, not from the path's end point.
- Minimum size
- 24 px with the node. 16 px without it — the node is 4 px across at that size and turns to mud. Never below 16 px.
- App icon
- The mark sits at 62% of a 192-unit maskable plate on warm paper, with the node enlarged to 6 units of the plate so it survives Android's circular mask.
- Files
- Vector only, exported at 16, 24, 32, 48, 192 and 512. The logo currently in the repository is a 247,056-byte image export and cannot be recoloured above 16 px.
The mark is allowed to be imperfect in exactly one place.
Everything else about this identity — the grid, the contrast measurements, the 16 px test — is exact. The single asymmetrical arm is what makes it read as human, and a second bit of looseness would read as sloppy instead.
02 · Type
Two good faces already on the machine, and one new one that earns its place.
- Display
- Manrope, variable, weight 700–800. Humanist geometric with open apertures, which is what stops a status word from looking like a lecture.
- Body
- Mukta — the one addition this route asks for. It carries Devanagari and Latin in the same family, so a Hindi label and an English figure sit on one baseline without a fallback face appearing mid-screen.
- Data
- Mono, tabular, exactly as in routes 01 and 03. Times, distances, amounts.
- Nothing in the rep's app is smaller than 15 px. This screen is read at arm's length, outdoors, sometimes with a cracked protector.
- Status words are set in the display face, bold. The colour is the second signal, never the first.
- Devanagari and Latin never mix within one word. One script per string, one baseline per screen.
- The wordmark ships as outlines. A variable face is exactly the kind of thing a device substitutes silently.
Aa
Eleven visits. Two left. The round is still running.
आज का राउंड · eleven stops planned, four counters booked, one order already raised. Punch out when the last shop closes.
11:20 · 6 of 11 done · 41,208 km · 24 km since the last stop
वनिश्री
03 · Colour
Warm paper, indigo ink, terracotta for the one thing you can do next.
| Token | OKLch | Resolves to | |
|---|---|---|---|
--bg | 0.975 0.006 80 | #f9f6f2 | |
--surface | 0.995 0.006 80 | #fffdf9 | |
--fg | 0.24 0.06 275 | #171c3b | |
--muted | 0.52 0.05 275 | #606786 | |
--border | 0.905 0.014 80 | #e5dfd6 | |
--accent | 0.50 0.15 50 | #a34100 | |
--accent-hover | 0.44 0.15 50 | #8a3600 | |
--ochre | 0.80 0.13 70 | #f3ae58 | |
--state-done | 0.535 0.13 158 | #00834f |
| Pair | Measured | Verdict |
|---|---|---|
| Ink on warm paper | 15.44:1 | pass |
| Muted on warm paper | 5.16:1 | pass |
| Accent on warm paper | 5.90:1 | pass |
| White on accent | 6.34:1 | pass |
| White on accent-hover | 8.19:1 | rises |
| Ink on border | 12.50:1 | pass |
| Green marker on warm paper | 4.48:1 | pass |
| Ochre on warm paper | 1.78:1 | never text, never a marker |
| Ink on ochre | 8.70:1 | pass |
Ochre measures 1.78:1 against this paper, so it can carry nothing on its own — not a label, not a status dot. Used the other way round it is the strongest tool in the palette: an ink text on an ochre band measures 8.70:1, which is a highlighter pen. Route 02 uses ochre for exactly that, and for nothing else.
- Hover darkens. The primary action moves from 6.34:1 to 8.19:1 — contrast rises with the state change.
- Green is a marker, never a word. At 4.48:1 it is a hair under the text threshold; the word beside it is ink.
- The accent appears on the eyebrow and on the one action per screen. Inside the rep's app that action is the punch button, and there is only ever one of it.
04 · State
Shape first, word second, colour third — and no red at all.
In route 01 the verdict is the product. In route 02 the reader is the product's user, and a screen that turns red at a rep for a weak signal is how adoption dies. So this route carries state in a shape and a word, and bans red from status entirely.
Red is for deleting something, and for nothing else.
Delete a draft visit, remove an attachment, discard an order — those are destructive, and they are the only red in the app. A missing punch-out is not destructive; it is a fact, and it gets a word and a shape. This single restriction is what makes the app feel like it is on the rep's side without weakening a single check.
Done
doneNeeds a look
needs a lookNot recorded
not recorded05 · The identity in the rep's hand
The two screens that decide whether any of this gets adopted.
आज का राउंड · today's round
6 of 11 done
Shivam Traders
Order ₹42,800 · done
Mangalam Kirana
4 km · last visited 12 days ago
Shivam Traders
Return visit · needs a look
Pali Road Agency
Beat 3 · order likely
Closing the day
Two readings and the day is closed. Both are captured here — neither is typed.
06 · Voice
The app talks to one person at a time, and it is never the auditor.
| Where the rep meets it | Shipping today | Route 02 writes |
|---|---|---|
| The install prompt | The manifest's description currently reads “A new Flutter project.” — the app's first sentence to a rep is boilerplate. | “Your day, and the proof of it. Works without network.” |
| The line the manager repeats | The repository tagline is “Track your team, close more deals” — it addresses the manager and never the person doing the work. | “Your round, your orders, your day — captured in two taps.” |
| The first screen, before any signal | Today, silence. | “Everything is saved on this phone. Nothing you record today will be lost.” |
| A visit that cannot be verified | Today the row simply shows nothing. | “No location fix here. The visit still counts — it is marked not recorded, not wrong.” |
| The end of the day | Today, no closing statement. | “11 visits closed. Two need a look. Nothing is waiting on you.” |
Address one rep, never a population. “Your round”, not “field force activity”.
Say what was saved before saying what failed. Local first is a promise, not an architecture note.
A gap is described, never graded. No “poor”, no “non-compliant”, no exclamation marks.
Two taps or fewer, and the copy says how many. “Punch in” is two words and one press.
07 · Why it converts
Route 02 sells to the person who has to use it, and it is the only honest route to the manager.
“This protects me as much as it checks me.”
The geometry does the arguing: a round cap, an arm that is not quite the same as its twin, and a status system with no red in it. Nothing on the screen is looking for someone to blame.
“My team actually opens it.”
Adoption is the manager's real risk, not accuracy. Route 02 converts him by removing the objection he hears in every meeting: “the reps won't use it.”
“I can change something before the month closes.”
A live round with a needs-a-look queue arrives in time to act on. Rollups that open on what went wrong rather than on totals.
- One new licensed face. Mukta is the only addition, and it is the reason the Hindi strings can ship at all without a fallback breaking the baseline.
- The shape-first state system has to be built once and used everywhere, or the ban on red collapses the first time a developer is in a hurry.
- Every empty state needs writing. This route's trust comes from what the app says when there is nothing to show, and today those screens say nothing.
- It is the softest route on the owner's desk. Warm paper and rounded caps do not, by themselves, convince someone paying for a team they cannot see. Route 02 needs route 01's record or route 03's ledger to close.
- Friendly can read as unserious. The moment the brand is used on a quotation or a contract, route 02 needs the neutral lockup and the mono figures to hold the room.
- Adoption is not measurable yet. The product has no instrumentation for install-to-first-visit, so this route's central claim cannot be proven until that exists.