iaiops-water

iaiops-water is a skill for Claude Code, Codex from industrial-aiops/industrial-aiops. It costs 162 tokens per session (3,466 once invoked), scanned A, original, MIT.

A water-treatment edition of an industrial data and troubleshooting skill for waterworks, wastewater plants, and pump stations. It reads data from devices such as dosing systems, analyzers, flow meters, SCADA-connected PLCs, and process transmitters using Modbus, OPC-UA, and HART-IP.

In plain words
What is it for?
Use it to check pH, turbidity, conductivity, level, flow, pumps, dosing, and other plant signals; browse SCADA tags; inspect alarms and historical readings; and investigate connection or data problems.
Why use it?
It brings readings from different types of water-plant equipment into one workflow and helps inspect alarms, history, connection problems, thresholds, and unusual values. The listed operations are read-only.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it to check pH, turbidity, conductivity, level, flow, pumps, dosing, and other plant signals; browse SCADA tags; inspect alarms and historical readings; and investigate connection or data problems.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/industrial-aiops/industrial-aiops/iaiops-water
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add industrial-aiops/industrial-aiops --skill iaiops-water
Clone the repo
git clone --depth 1 https://github.com/industrial-aiops/industrial-aiops

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for iaiops-water

README.md
[![agentmods](https://agentmods.dev/badge/skills/industrial-aiops/industrial-aiops/iaiops-water/github.svg)](https://agentmods.dev/skills/industrial-aiops/industrial-aiops/iaiops-water)
Your own site
<a href="https://agentmods.dev/skills/industrial-aiops/industrial-aiops/iaiops-water"><img src="https://agentmods.dev/badge/skills/industrial-aiops/industrial-aiops/iaiops-water/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for iaiops-water

Your own site · 80×15
<a href="https://agentmods.dev/skills/industrial-aiops/industrial-aiops/iaiops-water"><img src="https://agentmods.dev/badge/skills/industrial-aiops/industrial-aiops/iaiops-water.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 162 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,466 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00162 $0.03466
Opus 5 $0.00081 $0.01733
Sonnet 5 $0.00032 $0.00693
Haiku 4.5 $0.00016 $0.00347

Measured 5d ago against content hash 65c7bfa2005b, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

iaiops-water scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/iaiops-water/SKILL.md · 129 lines

How it starts

The opening of the file, as written. The whole thing — 129 lines — stays where its author put it; the contents beside it link to each section on GitHub.

iaiops-water — 水处理 edition(Modbus + OPC-UA + HART + 脑)

启动:IAIOPS_MCP=water / iaiops-mcp-water(= modbus + opcua + hart + 脑; 等价显式写法 IAIOPS_MCP=modbus,opcua,hart)。HART 需 extra: pip install iaiops[hart]。典型现场:加药撬/分析仪走 Modbus,全厂 SCADA 走 OPC-UA,pH/浊度/电导率/液位/流量变送器走 HART(经网关)。

工具

Modbus-TCP / Modbus-RTU(只读;加药撬、分析仪、流量计、泵站 RTU)

  • modbus_read_holding modbus_read_input modbus_read_coils modbus_read_discrete
  • modbus_detect_byte_order — 字节/字序自动探测(分析仪浮点数常见坑)
  • modbus_list_templates / modbus_apply_template — 厂商寄存器模板 → 命名 tag
  • modbus_health_summary — 寄存器 vs 阈值分类(如 pH 6.5-8.5 带)

OPC-UA(只读;全厂 SCADA / PLC 网关)

  • opcua_server_info / opcua_browse / opcua_read_node / opcua_read_many
  • opcua_subscribe_sample opcua_read_alarms opcua_alarm_events(A&C 带时间戳) opcua_read_history(HDA)
  • opcua_diagnose_connection — 连接失败归因(证书/策略/认证/网络/配置)
  • opcua_discover_tags — 自动发现 + 语义资产建模(构筑物/工艺段/设备)
  • opcua_health_summary — tag vs 阈值分类;opcua_anomaly_scan — 有界统计异常扫描

HART-IP(只读;水质/过程变送器,经网关,端口 5094)

  • hart_device_identity — 通用设备身份(command 0)
  • hart_primary_variable — 主变量 PV(如 pH 值、NTU)
  • hart_dynamic_variables — PV/SV/TV/QV + 回路电流(command 3)
  • hart_burst_sample — 主动采样 burst 变量;hart_burst_listen — 被动监听 burst publish(待核实)

水处理专属(edition 工具;仅随 water edition 加载,不进全局脑)

  • disinfection_ct — SWTR 消毒 CT 合规:CT = 余氯(mg/L)×有效接触时间 T10(min);逐个 接触池算 achieved CT 对比所需 CT(按州 CT 表按温度/pH/消毒剂查得,由调用方传入),给达标比与 worst-first。纯分析,不内嵌 CT 表(传 required_ct);每比值引用输入。
  • water_quality_compliance出厂水质合规:逐采样点对浊度/余氯/pH 判限值(默认浊度 ≤1.0 NTU、 余氯 0.2–4.0 mg/L、pH 6.5–8.5;可按许可证覆盖),越界即 breach,worst-first,引用数值。

跨协议脑(永远随 server 暴露)

  • 诊断:diagnose_dataflow downtime_root_cause downtime_root_cause_live downtime_triage learn_cause_weights rca_corpus_from_maintenance historian_health alarm_bad_actors tag_health subscription_health heartbeat_health alarm_flood_analysis alarm_cascade alarm_rationalization_worksheet
  • 告警事件聚类:alarm_event_clustersalarm_bad_actors来源排名,回答的是「哪台仪表最吵」, 不是「哪个故障最吵」;一个把同一条件写成十种说法的厂会得到十个 bad actor。这个按事件说了什么分组。 合并规则是去掉大小写/标点/数字后的精确相等,不是相似度 —— 故意做笨,所以不需要模型、且可核对; 每个簇都列出被合并的原文与来源。它不主张两条措辞不同的告警是同一个故障,那由人判断。
  • 数据质量:data_quality_scorecard data_quality_fleet_rollup(水质仪表重点: 电极老化 flatline / staleness / 量程外 —— 坏数据绝不静默插值)
  • 分析:oee_compute downtime_events oee_multidim monitor_changes health_summary (deprecated) anomaly_scan (deprecated)
  • 上下文基线:baseline_learn_contextual baseline_check_in_context —— 一个位号只学一条带, 在它有不止一个「正常」时就是错的(同一台干燥机 recipe A 走 180 °C、B 走 240 °C,一条带横跨两者, 于是两个工况都不可能出错)。上下文由人声明,绝不推断(D16);某个上下文历史太薄就拒学, 不借用别的上下文的样本;读数落在没学过的上下文里报 unknown_context,绝不回落到全局带 —— 回落等于把「这个工况从没见过」说成「这个工况正常」。
  • 上下游归因:downtime_attribution —— RCA 只按时间加权,所以一次上游停机会让每台下游设备 各自给出一个自信的本地根因。方向来自声明的产线顺序(D25:产线上共现是必然,拿它挖边等于 制造因果),顺序来自时间戳,两者都要成立;没声明关系就报 not_evaluable 并给出补法。
  • 资产:asset_inventory cross_protocol_asset_model adopt_alias_map diff_alias_map
  • 设备公告对照:device_advisory_check —— scan 早就在读 vendor/model/firmware,却什么都没做。 这条把它接上,并刻意停在漏洞扫描器会继续往前走的地方:只报「落在公告声明的版本范围内」, 不说「可利用」、不给严重度 —— 可达性与补偿控制决定那件事,而只读扫描看不见它们。 不内置任何 CVE 库(过期却看着像最新的库比没有更糟),由现场挂载文件、离线可用,每条必须带来源。 读不出固件报 version_unknown,读得出但排不了序报 version_unparsed —— 都不算通过; 公告没提到的设备不出现在结果里,那是「未知」不是「没有」。
  • 基线:baseline_learn baseline_check baseline_record_change baseline_status (change-log 基线:拒学薄历史、只报持续越带、每次告警必引基线样本 —— 非黑盒异常检测)
  • 合规/信创:compliance_mapping compliance_frameworks compliance_dengbao_levels compliance_report compliance_evidence_bundle historian_push export_data historian_query historian_coverage stream_publish uns_publish stream_publish_event rca_narrate fleet_status fleet_incidents pdm_forecast historian_push export_data
  • 程序解读:plc_program_outline plc_program_xref plc_program_section plc_program_visibility(解读导出的 ST/AWL/L5X 程序,只读文件,强制引用行号)
  • 程序变更基线:plc_program_snapshot plc_program_drift plc_program_history — 把「认可的那一版」 的结构记下来(文件 SHA-256 + 每个 block 的结构指纹:声明/调用/分支条件/定时器,不含行号、注释、 block 顺序,所以在文件顶上加一行注释不会把整份程序报成变更),之后问某一次导出动没动。 三个判词咬得很紧:identical 由 SHA-256 相同得出;logic_changed 逐 block 指出哪一类变了; changed_outside_extracted_structure = 字节变了而结构指纹全同 —— 多半是注释/排版,但这些 parser 是结构抽取不是文法,所以它不叫「仅文档」,也不构成放行。删历史只在 CLI(iaiops program forget): 删变更控制证据不该离 agent 只有一次调用。存的是 block 名 + 哈希 + 计数,不落声明、源码行和注释
  • 自证:verify_determinism — 把「拿掉模型、断网、同一份数据重跑、输出逐字节相同」跑出来: 固定数据集过一遍分析层,规范化后取 SHA-256,在本进程跑两遍、再在两个不同 PYTHONHASHSEED 的 全新解释器里各跑一遍(这一臂才抓得到集合/字典迭代顺序渗进结果),全程 socket 抛异常。 给 CSV/验证团队的是一条能写进 IQ/OQ 的测试用例,不是一句形容词。
  • 元:protocols_supported(产品能做什么)· site_readiness(这个站点今天能跑什么、还差什么;零联网) · onboarding_status(这个站点走到哪一步了、下一条命令是什么;零联网) · onboarding_config_draft(把已存的 scan 变成 config.yaml 端点草稿 —— 只写连接事实value: null 的字段是扫描没确认的,照抄它的 caution,别替人填也别删;tags 永远是空的, 点位语义只能人来确认 iaiops tags export|apply)
  • 调查层(§13,八步证据闭环):investigation_readiness investigation_open investigation_show investigation_list — 「真出事时这个站能走到第几步、每个缺口还差什么」,以及对一个已过去的窗口 逐步走完并留档(不碰设备)。缺口分两种:你没供(给命令) 与 产品供不了
  • 产线关系与机制库:line_relation_declare line_relations_list mechanism_library_check mechanism_library_list — 上下游由人声明(D25:线上下游共现是必然,推不出因果); 机制库按 ISO 14224 分 mode/mechanism/cause,可排除、绝不确认, 库里没有这条原因 → nothing_known(不是「无异议」)。

Read the full file on GitHub · 129 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 5d ago Changed · +4 lines 65c7bfa2005b
  2. 8d ago Changed · +29 lines e0e7556dcebf
  3. 12d ago First seen · 96 lines · 162 tokens per session scan A 94584e9c20a7

Subscribe to this mod's changes

iaiops-water is a skill published in the GitHub repository industrial-aiops/industrial-aiops (1 stars, last pushed 7d ago), licensed MIT. It adds 162 tokens to every session and 3,466 once invoked, about $0.0008 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

OT / ICS / SCADA Security

Operational Technology and industrial control system security — Purdue model segmentation, industrial protocol analysis (Modbus, DNP3, S7, EtherNet/IP), PLC/HMI exposure, IEC 62443 alignment, and MITRE ATT&CK for ICS, for authorized and safety-conscious assessments.

Masriyan/Claude-Code-CyberSecurity-Skill · 64 tokens

tiaportal-mcp

A skill for controlling Siemens TIA Portal, the engineering software used to configure Siemens PLCs and HMIs. It works through an MCP server, a tool connection that lets an agent inspect and change projects.

bulaofen0036-coder/TIA_Portal_Openness_MCP · 103 tokens

Naabu

Port scanner for finding open ports and services on hosts. USE WHEN user mentions port scanning, open ports, service discovery, network reconnaissance, or host enumeration. Wraps ProjectDiscovery's naabu binary as a local MCP server.

CarbeneAI/Forge · 48 tokens

endpoint-aiops

Use this skill whenever the user needs to operate a managed-endpoint fleet (thin clients, VDI endpoints, centrally-managed devices) — a one-shot fleet health overview, endpoint inventory (list/get), a composite per-endpoint health score (which endpoints are worst?), login & boot sessions, login-storm analysis (detect…

AIops-tools/Endpoint-AIops · 299 tokens

tia.init

Initialize or update the current project's AGENTS.md with the TIA harness operating guide. USE WHEN the user asks to "init / bootstrap / set up the TIA harness", "add the harness guidance to AGENTS.md", or "update the TIA harness section / refresh the harness guide in this project". Idempotent: injects the guide…

renanlido/tia-harness · 167 tokens

cpu.select

Recommend a Siemens S7-1500/S7-1200 CPU family + variant + order number (MLFB) from an engineering need (I/O count, scan/performance, memory, communication ports, safety, redundancy, motion). USE when the user asks "which CPU / PLC should I use", gives selection criteria instead of a model, or needs a typeIdentifier…

renanlido/tia-harness · 177 tokens