Run a full Section 508 + WCAG 2.2 Level AA accessibility audit on a federal / .gov / public-sector website or ICT product. Triggers: "Section 508", "508 audit", "WCAG", "VPAT", "ACR".
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Generate a production-grade Industrial IoT protocol bridge — OPC UA ↔ MQTT Sparkplug B, Modbus → MQTT, or direct PLC (Rockwell/Siemens/Beckhoff) → cloud (AWS IoT Core / Azure IoT Hub / GCP IoT / self-hosted HiveMQ)..
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
실행 점수 미검증
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
You generate a production-grade protocol bridge that moves plant-floor data into a modern broker / cloud platform with industrial standards (Sparkplug B, OPC UA, MQTT 5.0) and security (TLS, X.509 mutual auth, RBAC) built in from the start.
OT/IT integration is the #1 friction point in Industry 4.0 deployments — multiple SCADA hosts each requiring request/response gateways, manual config that grows linearly with device count. This skill outputs a publish-subscribe bridge that breaks that pattern.
Gather and verify before generating:
pylogix / pycomm3), Siemens S7 (snap7), Beckhoff ADS (pyads)--insecure flag for explicit opt-out.Recovery:
Generate the topic schema based on Sparkplug B (the only widely-accepted industrial MQTT topic standard) OR the ISA-95 / Unified Namespace pattern if the user is going broader than Sparkplug.
Sparkplug B topic format (Eclipse Tahu spec):
spBv1.0/{group_id}/{message_type}/{edge_node_id}/{device_id}
Message types:
NBIRTH — Edge node online (publishes ALL metric definitions)
NDATA — Edge node metric value update
NDEATH — Edge node going offline (sent as LWT)
DBIRTH — Device online (under an edge node)
DDATA — Device metric value update
DDEATH — Device offline
NCMD — Inbound command to edge node
DCMD — Inbound command to device
ISA-95 / Unified Namespace pattern (for non-Sparkplug deployments):
{enterprise}/{site}/{area}/{line}/{cell}/{asset}/{metric}
e.g., acme/austin-plant/packaging/line-3/filler-2/torque
Reserve subtrees:
.../events — discrete state changes (Start, Stop, Alarm)
.../alarms — ISA-18.2 alarms
.../commands — write-back operations
Generate topics.yaml documenting the chosen schema. The schema is the contract for everything downstream — get it right at the start.
VALIDATION: All generated topics validate against the Sparkplug B spec OR the ISA-95 pattern, no special characters, no wildcards in publishers, ≤ 5 levels deep.
FALLBACK: If the user has an existing topic schema (legacy MQTT deployment), generate a translator layer rather than forcing migration.
Generate the bridge code. Default to Python (best industrial library support). Use Node only if user requests it.
Required dependencies:
paho-mqtt (MQTT 5.0 client)tahu-python or hand-rolled Sparkplug B protobuf (vendor sparkplug_b.proto)asyncua for OPC UApymodbus for Modbuspylogix / pycomm3 / snap7 / pyads for direct PLCSparkplug B lifecycle implementation is non-negotiable:
# On startup:
1. Connect to broker with LWT = NDEATH topic (so broker auto-publishes our death)
2. Publish NBIRTH with ALL metric definitions and current values + bdSeq counter
3. For each device: publish DBIRTH with that device's metrics
4. Then start publishing DDATA on change
# On metric value change:
1. Increment seq number (0-255, wraps)
2. Publish DDATA with only the changed metrics (publish-on-change, NOT poll)
# On graceful shutdown:
1. Publish DDEATH for each device
2. Publish NDEATH for the edge node
3. Disconnect cleanly
# On broker reconnect:
1. Repeat NBIRTH/DBIRTH (consumers need fresh schema after death/birth)
2. Reset seq counter
3. Increment bdSeq (birth/death sequence — top-level continuity)
Common bugs to PREVENT by construction:
VALIDATION: Run the bridge against a local HiveMQ + Sparkplug B Inspector (or Chariot Edge); confirm NBIRTH appears, DDATA flows, and DDEATH publishes on graceful shutdown. Pull the network cable and verify NDEATH appears via LWT.
FALLBACK: If Sparkplug B is overkill for the use case, generate plain MQTT with the ISA-95 topic schema — but emit a warning that interop with industrial consumers (Ignition, HiveMQ Distributed Tracing) will be limited.
Generate the security stack. Defaults that ship to production:
Generate security/:
security/
├── ca/
│ ├── generate_ca.sh # one-time root CA generation
│ └── sign_client.sh # per-edge-node cert signing
├── certs/
│ └── .gitignore # certs NEVER committed
├── broker_acl.yaml # HiveMQ/EMQX ACL
└── README.md # rotation runbook
VALIDATION: Bridge fails closed if cert is missing or expired (does NOT silently fall back to plaintext). ACL prevents an edge node from publishing under another node's topic prefix.
FALLBACK: For air-gapped OT networks with no PKI, generate a PSK-based config — but mark explicitly as "lab/PoC only".
OT networks drop. Bridges that don't buffer lose data. Generate a persistent queue (SQLite or RocksDB) that:
This is the difference between a hobby script and a production bridge.
VALIDATION: Test by killing the broker for 60 seconds and confirming all messages arrive in order after reconnect with original timestamps preserved.
Generate docker-compose.yml so the entire stack runs locally for testing:
services:
hivemq:
image: hivemq/hivemq4:latest
ports: ["1883:1883", "8883:8883", "8080:8080"]
volumes: [./security/certs:/opt/hivemq/conf/certs:ro]
modbus-sim: # mock PLC for testing
image: oitc/modbus-server:latest
opcua-sim:
image: opensimroot/opcua-server:latest
sparkplug-inspector:
image: cirruslink/sparkplug-inspector:latest
ports: ["3000:3000"]
bridge:
build: .
environment:
- MQTT_HOST=hivemq
- SOURCE_TYPE=opcua
- SOURCE_ENDPOINT=opc.tcp://opcua-sim:4840
VALIDATION: docker-compose up brings up the full stack; Sparkplug Inspector at localhost:3000 shows the bridge's NBIRTH/DDATA flow within 30 seconds.
Generate basic observability so failures don't hide:
/metrics): messages_published_total, broker_reconnects_total, queue_depth, cert_expiry_days_remaining./healthz) returning 200 only if broker is connected AND source protocol session is active.VALIDATION: Scrape /metrics and confirm at least messages_published_total increments after a source change.
Score 1–5:
Most common failure: forgetting to re-publish NBIRTH after reconnect → consumers see ghost edge nodes. Verify explicitly.
Append to ~/.claude/skills/iiot-bridge/LEARNINGS.md:
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Run a full Section 508 + WCAG 2.2 Level AA accessibility audit on a federal / .gov / public-sector website or ICT product. Triggers: "Section 508", "508 audit", "WCAG", "VPAT", "ACR".
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Analyzes actuarial modeling systems for loss reserving accuracy, premium pricing methodology, mortality/morbidity tables, stochastic modeling, and capital adequacy per SOA and Solvency II standards..
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Analyzes advertising yield across programmatic and direct-sold inventory including CPM/CPC/CPA performance, header bidding efficiency, fill rate optimization, inventory monetization strategies, and compliance with IAB standards and OpenRTB protocols..
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Create and manage Architecture Decision Records using the Michael Nygard format. Triggers: you need to document architecture decisions, record technical choices, explain why a technology was chosen.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Analyzes affordable housing management software for unit allocation algorithms, waitlist management, income verification workflows, Fair Housing compliance, LIHTC and Section 8 program tracking, inspection scheduling, and tenant reporting..
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Rewrites existing landing pages, blog posts, and documentation so AI search engines (Google AI Overviews, ChatGPT, Perplexity, Claude, Gemini) cite them. Triggers: an existing page underperforms in AI answers despite ranking well in classic SERPs.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.