Install
openclaw skills install @voronindenis5/toilet-triage-rangerUse when a toilet runs constantly, refills by itself, phantom-flushes, or the flush is weak and you're staring into the tank wondering what to touch — symptom-based diagnosis tree (flapper vs fill-valve vs chain vs flange), exact water-waste math from your meter (a stuck flapper wastes 950-9500 L/day, doubling a household's water use), safe DIY-vs-shutoff decision, the 10-minute flapper replacement protocol, weak-flush causes ranked, and a shutoff-valve-stuck rescue path.
openclaw skills install @voronindenis5/toilet-triage-rangerA running toilet is the highest-ROI household repair most people postpone: a stuck-open flapper passes 200+ gallons a day silently — that's 2-4× a typical household's entire indoor use, flowing while you sleep. And the diagnosis is easier than people fear: the tank is just a container of clean water with three parts that fail in known ways.
This skill is the 2 AM tank-staring companion:
Pure stdlib, offline. Water is clean in the tank; the only real risks are over-tightening porcelain (crack = new toilet) and the stuck shutoff valve.
Don't use for: sewage backup into the bowl (that's a main-line problem — plumber), tank or bowl cracks leaking water onto the floor (water supply off, replace toilet), or frozen/burst supply lines.
[fill valve tower] [overflow tube]
| |
[float] ---+ | water line ↑
[flapper] ------hinge------ [flush valve seat]
| [chain] to flush handle
python3 scripts/toilet_triage.py diagnose --symptom runs-constantly
python3 scripts/toilet_triage.py diagnose --symptom phantom-refill
python3 scripts/toilet_triage.py waste --rate running --price 4.1 --currency EUR
python3 scripts/toilet_triage.py waste --rate trickle
python3 scripts/toilet_triage.py decide --symptom phantom-refill --renter
python3 scripts/toilet_triage.py fix --part flapper
python3 scripts/toilet_triage.py fix --part fill-valve
fix output), and for weak
flush: weak command.Flow through a stuck flapper or running fill valve, by severity:
| Sound | Est. flow | Liters/day | @ $4/kl (EUR-ish) |
|---|---|---|---|
| intermittent trickle | 0.1 L/min | 144 | $0.58 |
| constant trickle | 0.4 L/min | 576 | $2.30 |
| quietly running | 1.5 L/min | 2,160 | $8.64 |
| loud running | 4 L/min | 5,760 | $23/day ≈ $700/yr |
A "quietly running" toilet doubles a 2-person household's typical 11,000-14,000 L/month. Phantom refills every 10 min ≈ a stuck flapper: 3-5 L per event, 6-9 kl/month. Meter check (below) turns estimates into facts in 30 minutes.
decide output.$ toilet_triage.py diagnose --symptom phantom-refill
SYMPTOM: tank refills by itself every few minutes
1. [70%] FLAPPER not sealing (warped/ mineral/ chain propping it)
CONFIRM: dye test — food coloring in tank, wait 15 min NO FLUSH;
color in bowl = flapper passing water.
FIX: fix --part flapper (10 min, $8)
2. [20%] Water level set ABOVE overflow tube top
CONFIRM: waterline at/over the tube? trickle into tube?
FIX: bend float arm down / adjust screw 1-2 cm
3. [10%] Fill valve not shutting off (internal diaphragm)
CONFIRM: lift float arm fully — does water STOP? if not → valve
FIX: fix --part fill-valve (30 min, $15)
$ toilet_triage.py waste --rate running
quietly running ≈ 1.5 L/min → 2,160 L/day → ~$8.6/day at $4/kl
≈ 65 kl/month — your whole household usually uses 11-14.
VERDICT: fix today; it's a $8 flapper, not a plumber call.