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.
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.
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.
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.
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.
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.
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.
Real usage code-switches mid-sentence (and Sheng in Nairobi). The agent must accept anything and mirror the user's mix. Voice input matters.
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.
Any future payment is M-Pesa (Daraja API). But v1 is free for buyers — adoption first; see unit economics in §04.
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.
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 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:
Steps 3–4 loop: the agent re-requests evidence until confidence clears a threshold — or says plainly what it couldn't verify.
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:
| Defect class | Examples | Sensor | Detectability |
|---|---|---|---|
| Geometry & assembly | Racking joints, gaps, misaligned legs, warp, unlevel tops | Guided photos + wobble/marble/sight tests | Strong |
| Surface & finish | Filler over defects, sanding scratches, thin varnish, veneer lifting at edges | Raking-light close-ups | Strong |
| Material state | Green/unseasoned timber, sapwood, borer holes | Proxy tests: fingernail press, weight question, end-grain close-up, smell | Partial — proxies + honesty |
| Hidden construction | Nails vs tenons inside a joint, screw length, internal blocks | External cues + questions the buyer asks the seller | Indirect only — say so |
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."
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.
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.
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.
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.
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.
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.
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 | Tier | Notes |
|---|---|---|---|
| K-01 | Item-type selection (6 types at launch) | BASIC | Each type = its own inspection protocol file |
| K-02 | Context intake (buying/own, price, use) | BASIC | Conversational, 30 seconds, skippable |
| K-03 | Guided photo capture with live coaching | BASIC | The core interaction; blur/light checks client-side |
| K-04 | Physical test direction & input | BASIC | Wobble, marble roll, sight-line, drawer, press tests |
| K-05 | Structured verdict report | BASIC | Defect cards: photo, severity, implication, fix cost, ask-the-seller |
| K-06 | Grounded follow-up chat (text + voice) | BASIC | "Will it get worse?" "What do I say to the seller?" |
| K-07 | WhatsApp-ready report card + save history | BASIC | Sharing is the growth loop |
| K-08 | Trusted shops near me (quality index) | EXT | Needs assessment density + anti-gaming (Q6) |
| K-09 | Compare two candidates side by side | EXT | Cheap to build once reports are structured |
| K-10 | Share report with seller / fix-first flow | EXT | Turns inspection into negotiation, then into repair orders |
| K-11 | Follow-up pings ("how is the bed holding up?") | EXT | Longitudinal data → validates our own verdicts |
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 verify → price sanity check against the quoted price. The follow-up chat sits directly under the verdict, pre-seeded with the three questions buyers actually ask.
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.
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"}
}
| Phase | Weeks | Deliverable | Exit test |
|---|---|---|---|
| P0 · De-risk | 1–2 | Protocol prototyped in plain Claude with photo sets from real Nairobi shops; zero code | Geometry/surface defects reliably caught on 30 test pieces |
| P1 · Core loop | 3–8 | Kagua Basic (K-01…K-07) as PWA; 6 item protocols; report sharing | Stranger completes an assessment unaided in a real shop |
| P2 · Calibrate | 9–12 | Fundi-panel study (100+ pieces); protocol revisions; Swahili/voice polish | Agreement targets hit; wrong-verdict rate understood |
| P3 · Network | 13+ | Extended features (K-08…K-11) as assessment density allows; native wrapper | First 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.
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.
| # | Assumption | Status |
|---|---|---|
| A-01 | Deliverables are local HTML files (no hosted artifacts) | DECIDED |
| A-02 | Mockup imagery: real CC-licensed photos plausible for Kenya / low-income contexts | DECIDED |
| A-03 | One mockup per app with a Basic/Extended toggle | DECIDED |
| A-04 | English UI with light Swahili; full localization is a later workstream | DECIDED |
| A-05 | App names "Kagua" (inspect) and "Fundi Bora" (excellent craftsman) — placeholders, ours to change | ASSUMED |
| A-06 | Android-first; PWA acceptable for pilot | ASSUMED |
| A-07 | Buyers will perform physical tests in a shop if asked politely by the app | TO TEST |
| A-08 | Guided capture lifts defect detection to trust-worthy levels for geometry/surface classes | TO TEST |
| A-09 | Inference cost per assessment US $0.05–0.15 with caching | TO TEST |
| A-10 | Free-for-buyers is the right wedge; producer side carries revenue | ASSUMED |
| A-11 | Sellers tolerate in-shop inspection (it can be framed as flattering to good ones) | TO TEST |
| A-12 | Demo walkthrough item is a kitchen stool at KSh 3,500 — chosen because one real photo set covers it | ASSUMED |
Approve the Phase 0 de-risk: two weeks, zero code — one person, one phone, thirty pieces of furniture, and the protocol prompts. If geometry-class defects can't be caught reliably in that test, nothing else in this plan matters.