THE UBORA PROJECT · APP 1 OF 2 · CUSTOMER SIDE

KaguaJua kabla ya kununua — know before you buy.

A Claude-powered furniture inspector in every buyer's pocket. Kagua guides a customer through photographing and physically testing a piece of furniture, then delivers an honest, plain-language verdict they can act on — before money changes hands.

DOC Design brief v0.1 DATE 20 Aug 2026 STATUS Plan + mockup COMPANION Interactive mockup
01

The problem: a market where quality is invisible

Most furniture in Kenya is made and sold in the informal jua kali sector — roadside workshops and open-air showrooms where a bed, sofa set, or dining table is a major household purchase, often several weeks' income.

At the point of sale, a buyer cannot tell well-seasoned hardwood with tight mortise-and-tenon joints from green timber butt-nailed together and hidden under filler and varnish. The failures arrive months later: joints loosen, panels split as the wood dries, frames rack and wobble. Because buyers can't observe quality, they won't pay for it — so price becomes the only signal, careful fundis can't charge for craft, and the whole market drifts toward the lemon. This is the classic information-asymmetry failure, and it hurts both sides: buyers waste scarce income on furniture that fails, and skilled producers are trapped at commodity prices.

Marsabit Jua Kali Shed Group storefront with corrugated iron sheds
The market: jua kali sheds are where Kenya buys furniture. Photo: Nagarjun, CC BY 2.0.
A badly deteriorated homemade armchair
The failure mode: what buying blind can look like two years in. Photo: whiteafrican, CC BY 2.0.

Why this is solvable now

The missing ingredient has always been cheap expertise at the moment of purchase. A master fundi could spot every one of these defects in two minutes — but you can't bring one shopping. A vision-capable Claude agent can now do a meaningful fraction of that inspection through a phone camera, plus a few physical tests the buyer performs with their own hands. Expertise that used to cost more than the furniture drops to a few shillings of inference.

Thesis

Make quality visible at the point of sale and the market starts rewarding it. Kagua is the demand-side half of a two-app system — its sibling, Fundi Bora, works the supply side by coaching producers. Assessments from Kagua eventually aggregate into shop-level quality scores that route buyers to good fundis; that demand pull is what makes producers want to improve.

02

Who it's for, and the conditions on site

Primary persona

Amina, 34, Eastleigh, Nairobi. Just moved apartments; needs a bed, a dining set, and a sofa over the next three months. Shops at roadside showrooms and Gikomba. Was burned before — a sofa that sagged within a season. She has a KSh 25,000 budget, a mid-range Android phone, and a healthy suspicion of sellers. She doesn't know joinery; she knows disappointment.

Secondary (later): diaspora buyers furnishing family homes remotely — they send a relative to the shop and want the inspection done by someone they trust. High willingness to pay; defer until the core loop works.

Site conditions — design constraints we treat as fixed

Device

Mid-range Android

Tecno / Infinix / Samsung A-series, 2–4 GB RAM. Cameras from ~2020 onward are good enough for inspection photos. iOS is a rounding error here.

Data

Every MB is paid for

Users buy data bundles. Compress photos client-side (≤400 KB each); a full assessment should cost well under 5 MB. No video upload in v1.

Language

English + Swahili, mixed

Real usage code-switches mid-sentence (and Sheng in Nairobi). The agent must accept anything and mirror the user's mix. Voice input matters.

Sharing

WhatsApp is the network

Reports must export as a clean card/PDF that survives WhatsApp compression. Sharing the verdict with a spouse or the seller is a core action, not an extra.

Money

M-Pesa, if anything

Any future payment is M-Pesa (Daraja API). But v1 is free for buyers — adoption first; see unit economics in §04.

Trust

Reputation is local

Institutional trust is low; word of mouth is strong. One confidently wrong verdict costs us a whole estate's worth of users. Calibrated honesty is a survival requirement.

03

Breaking the problem down

The naive version — "upload a photo, get a quality score" — fails. One photo of a chair tells you almost nothing about the joint you can't see. The design insight that makes Kagua work is that the phone is a sensor the agent can direct, and the buyer's hands are instruments the agent can borrow.

The guided protocol is the product

The agent runs an item-specific inspection protocol: it asks for particular shots from particular angles, coaches the user live ("closer on that joint — right where the leg meets the seat"), requests extra evidence when it spots something, and directs physical tests a buyer can perform in a shop without permission or tools:

1 · selectItem typeChair, table, bed, sofa, cabinet, stool…
2 · contextSituationBuying or own? Quoted price, intended use.
3 · captureGuided photos6–10 shots; live coaching; agent may demand more.
4 · testPhysical testsHands as instruments; results tapped in.
5 · verdictStructured reportDefect cards, severity, practical implications.
6 · askFollow-up chatGrounded in this assessment; negotiation help.

Steps 3–4 loop: the agent re-requests evidence until confidence clears a threshold — or says plainly what it couldn't verify.

Defect classes mapped to the best available sensor

Not everything is visible, and pretending otherwise would destroy trust. We split the defect space by how each class can actually be detected, and let the report's confidence language follow the sensor, not our marketing:

Detection strategy by defect class
Defect classExamplesSensorDetectability
Geometry & assemblyRacking joints, gaps, misaligned legs, warp, unlevel topsGuided photos + wobble/marble/sight testsStrong
Surface & finishFiller over defects, sanding scratches, thin varnish, veneer lifting at edgesRaking-light close-upsStrong
Material stateGreen/unseasoned timber, sapwood, borer holesProxy tests: fingernail press, weight question, end-grain close-up, smellPartial — proxies + honesty
Hidden constructionNails vs tenons inside a joint, screw length, internal blocksExternal cues + questions the buyer asks the sellerIndirect only — say so
Design rule

When the sensor is weak, the product's move is honest triage, not fake certainty: "I can't verify the timber is seasoned from photos. Here are two things to check and one question to ask the seller — how they answer tells you a lot."

04

Key questions we had to answer

Q1 — Can the model actually see the defects that matter?

Our answer: for the two classes that drive most buyer regret (loose assembly, disguised surface defects), yes — if capture is guided; a free-form photo dump would not work. That's why the protocol, not the model, is the core IP. For material state we rely on physical proxies, and we say so.

Validation: Phase 0 is a zero-code prompt prototype: run the protocol on 30–50 real pieces, then a calibration study — 100+ pieces assessed by both the agent and a panel of master fundis; measure agreement per defect class; iterate the protocol until geometry/surface agreement is strong.

CONFIDENCE: MEDIUM-HIGHVALIDATE: FUNDI-PANEL STUDY

Q2 — What may a verdict say? (trust & liability)

Our answer: the verdict reports observations and their practical implications, never guarantees, and never "don't buy." Severity is expressed as what-happens-in-use ("this joint will loosen within months of daily use; re-gluing costs KSh 100–200 — ask the fundi to fix it before you pay"). Price guidance is a range with stated basis, flagged as local-typical, not an appraisal. Every report carries what was not verifiable.

CONFIDENCE: HIGHVALIDATE: USER COMPREHENSION TESTS

Q3 — Will photos from cheap phones in dark sheds be usable?

Our answer: mostly yes, with a capture coach: the client checks blur/exposure before upload, prompts for torch use, and the agent rejects and re-requests unusable shots. This is a solved pattern (mobile check-deposit apps). Worst case: the report says which checks were skipped for image quality.

CONFIDENCE: HIGHVALIDATE: FIELD PILOT IN REAL SHOPS

Q4 — Who pays? Do the unit economics work?

Our answer: a full assessment is roughly 8–12 vision inputs plus protocol and reasoning — order of US $0.05–0.15 of inference at current mid-tier pricing, less with prompt caching. Buyers get N free assessments; the durable revenue lives on the producer side (Fundi Bora subscriptions) and, later, shop certification. This is also classic development-economics territory — pilot funding via NGO/donor partners is realistic and the two-sided design is a natural RCT.

CONFIDENCE: MEDIUMVALIDATE: COST TELEMETRY IN PILOT

Q5 — Connectivity: does it work in a shed with one bar of 3G?

Our answer: inference is cloud-side, so assessment needs a connection — but capture doesn't. The app captures everything offline, uploads compressed shots opportunistically, and delivers the verdict when the pipe allows (target < 60 s on 3G; progressive "checking joints… checking finish…" states). Full offline assessment is out of scope for v1.

CONFIDENCE: HIGHVALIDATE: 3G FIELD TEST

Q6 — (Extended) Can the shop quality index resist gaming?

Our answer: scores only aggregate customer-initiated assessments with GPS + timestamp, need a minimum sample before display, decay with recency, and get anomaly screening (burst of perfect scores from one device ≠ signal). Producer self-assessments from Fundi Bora feed a separate, clearly-labeled "Bora Certified" track — never the customer score. Design fully before launch; ship after density exists.

CONFIDENCE: MEDIUMVALIDATE: RED-TEAM THE SCORING
05

The product: basic and extended

The interactive mockup walks every screen below with a real worked example (a KSh 3,500 kitchen stool at a roadside shop). Basic is the complete, self-sufficient loop; Extended is the network layer that switches on once assessment volume exists.

Feature cutting list
#FeatureTierNotes
K-01Item-type selection (6 types at launch)BASICEach type = its own inspection protocol file
K-02Context intake (buying/own, price, use)BASICConversational, 30 seconds, skippable
K-03Guided photo capture with live coachingBASICThe core interaction; blur/light checks client-side
K-04Physical test direction & inputBASICWobble, marble roll, sight-line, drawer, press tests
K-05Structured verdict reportBASICDefect cards: photo, severity, implication, fix cost, ask-the-seller
K-06Grounded follow-up chat (text + voice)BASIC"Will it get worse?" "What do I say to the seller?"
K-07WhatsApp-ready report card + save historyBASICSharing is the growth loop
K-08Trusted shops near me (quality index)EXTNeeds assessment density + anti-gaming (Q6)
K-09Compare two candidates side by sideEXTCheap to build once reports are structured
K-10Share report with seller / fix-first flowEXTTurns inspection into negotiation, then into repair orders
K-11Follow-up pings ("how is the bed holding up?")EXTLongitudinal data → validates our own verdicts

The report is the hero screen

Everything funnels into one screen the buyer can act on in the shop, structured as: headline verdict (Sound / Fair — priced-in issues / Serious concerns) → defect cards (annotated photo crop, what it is, what it means in use, cost to fix, what to ask the seller) → what we couldn't verifyprice sanity check against the quoted price. The follow-up chat sits directly under the verdict, pre-seeded with the three questions buyers actually ask.

06

Agent design

Inspection protocols as skills

Each item type ships as a protocol file the agent loads on selection: shot list with framing guides, item-specific physical tests, defect taxonomy with severity rubric, and typical failure patterns for that type as made in Kenyan workshops (e.g., bed frames: under-sized side-rail bolts; sofas: webbing instead of springs — fine — vs cardboard under fabric — not fine). Protocols are data, not code: the fundi panel from Q1 can review and improve them without an engineer.

Structured output, native UI

The agent's verdict is a typed object, not prose — the app renders it as cards, and follow-up chat stays grounded in it:

{
  "verdict": "fair",            // sound | fair | serious_concerns
  "headline": "Solid frame, two issues to price in",
  "confidence_notes": ["Could not verify timber seasoning from photos"],
  "defects": [{
    "type": "joint_gap", "location": "rear stretcher, left tenon",
    "evidence": "photo_5_crop", "severity": "structural_medium",
    "implication": "Will loosen within 6–12 months of daily use",
    "fix": {"what": "Re-glue and clamp", "cost_kes": [100, 200]},
    "ask_seller": "Ask the fundi to re-glue it before you pay."
  }],
  "price_check": {"quoted_kes": 3500, "typical_range_kes": [2800, 3800],
                  "basis": "grade + size, Nairobi roadside typical"}
}

Calibration rules

07

Architecture & build plan

Stack (thin client, smart service)

Phased build

Plan of work
PhaseWeeksDeliverableExit test
P0 · De-risk1–2Protocol prototyped in plain Claude with photo sets from real Nairobi shops; zero codeGeometry/surface defects reliably caught on 30 test pieces
P1 · Core loop3–8Kagua Basic (K-01…K-07) as PWA; 6 item protocols; report sharingStranger completes an assessment unaided in a real shop
P2 · Calibrate9–12Fundi-panel study (100+ pieces); protocol revisions; Swahili/voice polishAgreement targets hit; wrong-verdict rate understood
P3 · Network13+Extended features (K-08…K-11) as assessment density allows; native wrapperFirst organic "found this shop through Kagua" purchase

Fundi Bora reuses this entire assessment engine — protocols, schema, storage — with a different lens (diagnosis instead of verdict). Build once, wear two hats; the sibling doc covers what's added on top.

08

Assumptions log

Every assumption this plan rests on, including process decisions made while producing these deliverables. DECIDED = confirmed with you; ASSUMED = our call, reversible; TO TEST = must be validated in the field.

Cutting list — assumptions
#AssumptionStatus
A-01Deliverables are local HTML files (no hosted artifacts)DECIDED
A-02Mockup imagery: real CC-licensed photos plausible for Kenya / low-income contextsDECIDED
A-03One mockup per app with a Basic/Extended toggleDECIDED
A-04English UI with light Swahili; full localization is a later workstreamDECIDED
A-05App names "Kagua" (inspect) and "Fundi Bora" (excellent craftsman) — placeholders, ours to changeASSUMED
A-06Android-first; PWA acceptable for pilotASSUMED
A-07Buyers will perform physical tests in a shop if asked politely by the appTO TEST
A-08Guided capture lifts defect detection to trust-worthy levels for geometry/surface classesTO TEST
A-09Inference cost per assessment US $0.05–0.15 with cachingTO TEST
A-10Free-for-buyers is the right wedge; producer side carries revenueASSUMED
A-11Sellers tolerate in-shop inspection (it can be framed as flattering to good ones)TO TEST
A-12Demo walkthrough item is a kitchen stool at KSh 3,500 — chosen because one real photo set covers itASSUMED
09

Open questions & next decisions

  1. Pilot geography: one dense cluster (Gikomba/Ngong Rd furniture belt) vs. one estate's buyers. Cluster-first gives the shop index density fastest.
  2. Verdict vocabulary in Swahili: the exact three-level wording needs native-speaker workshopping — tone carries the trust.
  3. Partner strategy: pilot alone, or with a development partner (GIZ-type SME programs, KAM's informal-sector arms) who brings fundi networks and study funding?
  4. Item-type order: we assumed chairs/stools, tables, beds first (highest regret-per-shilling). Sofas hide the most defects — argue us out of deferring them.