马桶故障分诊员

诊断常见马桶问题、估算浪费的水量,并通过专用的离线 CLI 技能获取实用的维修建议或水管工指导。

voronindenis5
2026年10月13日
0 收藏
55 下载

安装与下载

1 ClawHub CLI

从源直接安装技能的最快方式。

npx clawhub@latest install toilet-triage-ranger

2 手动安装

将技能文件夹复制到以下位置之一

全局模式 ~/.openclaw/skills/
工作区 {'/skills/'}

优先级:工作区 › 全局 › 内置

3 提示词安装

将此提示词复制到 Openclaw 即可自动安装。

请帮我使用 Clawhub 安装 skill-toilet-triage-ranger。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。

更倾向于下载?

获取包含原生技能文件的ZIP压缩包。

下载技能 (.zip)

基本信息

名称 马桶故障分诊员
Slug toilet-triage-ranger
创建者 voronindenis5
创建时间 2026-10-13 05:57:34
更新时间 2026-10-13 05:57:34
收藏数 0
使用量 55
浏览量 1

安装指南

  1. ClawHub CLI 从源直接安装技能的最快方式。
    npx clawhub@latest install toilet-triage-ranger
  2. 手动安装 将技能文件夹复制到以下位置之一
    全局模式
    ~/.openclaw/skills/
    工作区
    /skills/
    优先级:工作区 > 本地 > 内置
  3. 提示词安装 将此提示词复制到 OpenClaw 即可自动安装。
    请帮我使用 Clawhub 安装 toilet-triage-ranger。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
    更倾向于下载?
    获取包含原生技能文件的ZIP压缩包。
    下载技能 (.zip)

什么是

马桶故障分诊员是 Openclaw Skills 中的一款工具,可用于排查马桶持续流水、无故自动补水和冲水无力等问题。它会根据症状列出可能原因并排序,然后建议进行染色测试或抬起浮球等确认测试。针对不同组件的说明涵盖止水皮、进水阀、链条和法兰螺栓。
该技能还会估算浪费的水量和费用,帮助你决定自行维修还是联系水管工,并提供有关止水阀和陶瓷部件的安全指导。它使用 Python 标准库离线运行,专注于家庭马桶问题,不涵盖污水倒灌、洁具开裂或供水管冻结和爆裂等情况。

应用场景

马桶持续流水,或每隔几分钟就自动补水。
冲水间隔时听到嘶嘶声或滴水声,需要找出可能的原因。
冲水无力、不彻底,或水位先升高又回落,却没有正常冲净。
想在决定何时处理之前,估算浪费的水量和费用。
需要更换止水皮或进水阀、调整链条或处理松动法兰螺栓的分步指导。
想通过后续染色测试确认维修是否成功。
作为租客,需要记录问题及其紧急程度并告知房东。
发现马桶底座周围有水,需要判断可能是蜡圈问题还是水箱问题。

工作原理

确定症状类别,例如 runs-constantly 或 phantom-refill,然后运行诊断命令,查看排序后的可能原因和确认测试。
使用 waste 命令估算漏水的严重程度和用水费用。提供流速,还可选填水价和货币;使用水表检查来核实实际用水量。
使用 decide 评估紧急程度,并判断是自行维修,还是关闭水源并联系水管工。--renter 选项可提供针对租客的指导。
使用 fix 选择受影响的组件,以获取相应的维修流程、工具和注意事项。止水皮维修流程约需 10 分钟;进水阀维修流程约需 30 分钟。
如果冲水无力或不彻底,请参照冲水无力故障排查指导,查看喷射孔、水位和通气等原因的排序结果。
按照建议进行染色测试以复查维修效果,并确认水箱水位线、链条松弛度和地面状况。

配置指南

该技能说明为离线运行,且仅使用 Python 标准库;未提及安装软件包或访问网络。请在技能目录中运行脚本,文档中提供的路径为 scripts/toilet_triage.py。
python3 scripts/toilet_triage.py diagnose --symptom runs-constantly
python3 scripts/toilet_triage.py waste --rate running --price 4.1 --currency EUR
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
触碰水箱组件之前,如果可以安全操作,请先关闭供水。不要强行转动卡住的止水阀;请遵循该技能提供的应急处理指导,或联系水管工。不要过度拧紧陶瓷部件上的连接件。

数据架构

该技能使用精简的元数据与脚本结构,而非持久化的家庭数据库。
项目 用途
SKILL.md 技能说明、工作流程、安全须知、示例和验证清单。
scripts/toilet_triage.py 文档中诊断、浪费估算、决策和维修命令所引用的 Python CLI。
Frontmatter 元数据 name、description、version、author、license,以及 plumbing、toilet、repair、home、water 和 DIY 等标签。
CLI 接受各命令专属的参数:diagnose 接受症状;waste 接受流速,也可以接受水价和货币;decide 接受症状,也可以接受 --renter;fix 接受部件。该技能提供终端指导和计算,不会生成报告或保存数据文件。可通过家庭水表核对用水浪费估算。

高级特性

根据症状对可能原因排序,并配合染色、抬起浮球和听声检查等确认测试。
按日、月和年计算估算用水量和费用,并可选填水价和货币。
提供紧急程度评估,以及自行维修或联系水管工的决策指导,并考虑租客的情况。
针对止水皮、进水阀、链条和法兰螺栓提供专门的维修流程,包含所需工具和常见问题。
涵盖冲水无力故障排查,包括水位、喷射孔和通气情况。
提供止水阀卡住时的应急处理方案,并明确说明哪些问题需要水管工处理。
使用 Python 标准库离线运行,工作流程轻量且不依赖网络服务。


name: toilet-triage-ranger description: "Use 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." version: 1.0.0
author: Denis Voronin
license: MIT
tags: [plumbing, toilet, repair, home, water, diy]

Toilet Triage Ranger

Overview

A 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:

diagnose — symptom → ranked causes → which part → test that confirms it (dye test, lift-the-float test, listening protocol).
waste — waste math from your situation (drip/ trickle/ running): liters and money per day/month/year, with meter-verification steps.
decide — DIY now / DIY this week / water-off + plumber, based on symptom class and your answers.
fix — step protocols per part: flapper (10 min), fill valve (30 min), chain, flange bolts; tool list; what NOT to do.
weak — weak/partial flush causes ranked (jet holes, water level, venting) with the trap-siphon explanation.

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.

When to Use

Toilet runs continuously, or refills itself every few minutes (phantom flush)

Hissing/trickling sounds between flushes

Weak or incomplete flush, water rising then settling without going down
Post-repair verification (did the dye test clear?)
"How much water is this actually wasting?" before deciding urgency
Rental/landlord situations: document waste + urgency for the notice

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.

The Parts Map (60-second orientation)
[fill valve tower] [overflow tube]
| |
[float] ---+ | water line ↑
[flapper] ------hinge------ [flush valve seat]
| [chain] to flush handle

Flapper (rubber seal at tank bottom): lifts to flush, drops to seal. Fails by warping/ mineral buildup → tank drains to bowl slowly → phantom refills. #1 failure by far.
Fill valve (tower with float): refills tank after flush, stops at set height. Fails by not shutting off (overflow rattle) or filling slowly/noisily.
Overflow tube: the tank's safety drain — water that rises too high dumps here into the bowl. Constant trickle into it = fill valve set too high or not shutting off.
Chain: too tight = flapper can't seal; too loose = doesn't lift fully; kinked = double-flush or no flush.
How It Works — Numbered Steps
Identify the symptom class, then run the tree:

python3 scripts/toilet_triage.py diagnose --symptom runs-constantly
python3 scripts/toilet_triage.py diagnose --symptom phantom-refill

Quantify what the silence is costing:

python3 scripts/toilet_triage.py waste --rate running --price 4.1 --currency EUR
python3 scripts/toilet_triage.py waste --rate trickle

Decide urgency and who fixes it:

python3 scripts/toilet_triage.py decide --symptom phantom-refill --renter

Execute the part-specific protocol:

python3 scripts/toilet_triage.py fix --part flapper
python3 scripts/toilet_triage.py fix --part fill-valve

Verify with the dye test afterward (in fix output), and for weak flush: weak command.
Waste Math (why this is urgent-adjacent)

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.

Common Pitfalls

Over-tightening anything on porcelain. Snug + quarter-turn. Cracked tanks = new toilet. This is THE toilet-repair injury.
Replacing the flapper without cleaning the seat. Mineral scale under the new flapper = same leak. Scour the seat with a scrubbie (not steel wool).
Chain tension ignored. ½-1 cm of slack. Too tight: flapper drops but sits propped → constant run. Too loose: weak flush.
Tank bricks / bricks in the tank "to save water." Disintegrate, jam the flapper. If saving water: dual-flush valve or fill-cycle diverter, not bricks.
Bleach tablets in the tank. Chlorine attacks rubber — flappers and seals die in months. Bowl-side only, never tank.
Forcing a stuck shutoff valve. Snap the handle → spray. Fix: gentle work loose, or wrench on the SUPPLY after closing upstream; see decide output.
Mistaking bowl-refill vs tank-refill sounds. The refill after flush refills BOTH (the bowl via the overflow tube) — a few seconds is normal; minutes is not.
Ignoring the wax ring when the floor is wet. Water AROUND the base isn't the tank's fault — rocking toilet compresses the ring: that's the flange-bolt protocol, and it's a different job.

Example

$ 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.

Verification Checklist

Symptom class identified; dye test run where indicated
Waste quantified (and meter-verified if bill-anxiety is high)

Water off at supply before touching parts

Correct part protocol followed; seat cleaned before new flapper
Chain slack ½-1 cm; waterline 1-2 cm below overflow top
Dye test RE-RUN after repair: clear bowl after 20 min
Floor around base dry (else: wax ring job, different protocol)
保险理赔指南针
人体工学办公桌校准器