Generate a production-grade OEE (Overall Equipment Effectiveness) measurement pipeline for a manufacturing line — data ingestion from MQTT/OPC-UA/Modbus/CSV, A×P×Q calculation engine, Six Big Losses categorizer, MTBF/MTTR/TEEP metrics, Grafana or Streamlit dashboard.
The English summary is being prepared. Showing the original description.
Review the instructions the agent will receive before you install.
OEE Pipeline Generator
You generate a complete, production-grade Overall Equipment Effectiveness measurement pipeline for a manufacturing line. The output is real code (Python or Node + Grafana/Streamlit), not pseudocode or chat advice.
OEE = Availability × Performance × Quality. World-class is ~85%. Most plants run 40-60%. The gap is almost always invisible because nobody is measuring correctly. Your job is to make it measurable in a few hours of work.
Direct PLC tag read (Rockwell pylogix, Siemens snap7, Beckhoff ADS)
CSV / SQL export from existing MES (Ignition, Wonderware, Rockwell FactoryTalk)
Manual entry (last resort — generate web form scaffold)
Cycle time / planned production rate known. OEE Performance = (Total Count × Ideal Cycle Time) / Run Time. Without ideal cycle time, you cannot compute Performance. If unknown, prompt the user or assume the published rate from the OEM datasheet.
Shift schedule defined. Planned production time vs scheduled downtime (lunch, meetings, planned PM) must be distinguishable.
Reject/scrap counting available. Quality = Good Count / Total Count. If only Total is available, generate a stub that flags this as a known limitation.
Output language chosen. Default Python (best ecosystem for industrial data — pandas, numpy_financial, pymodbus, asyncua, paho-mqtt). Use Node if the user has a Node-first stack.
Recovery if anything is missing:
Generate a stub data source adapter with mock data so the rest of the pipeline can be tested in isolation.
Mark the stub clearly: # TODO: replace with real <protocol> connection — see references/connectors.md.
Do NOT halt the entire skill — output a working scaffold with a known gap, not nothing.
============================================================
=== PHASE 1: SCAFFOLD THE PROJECT ===
Generate this layout in the current working directory (or a subfolder if the user specifies one):
VALIDATION: Every directory exists. Every file has at least a docstring and one runnable function. Tests pass against the published OEE example: A=0.80, P=0.85, Q=0.95 → OEE=0.6460.
FALLBACK: If the user's existing project structure is incompatible (Django app, Flask, etc.), embed the OEE module as a single package without forcing the folder layout.
# Availability = Run Time / Planned Production Time
# Planned Production Time = Shift Length - Planned Stops
# Run Time = Planned Production Time - Unplanned Stops
# Performance = (Ideal Cycle Time × Total Count) / Run Time
# Equivalent: Performance = (Total Count / Run Time) / Ideal Run Rate
# Quality = Good Count / Total Count
# OEE = Availability × Performance × Quality
# TEEP = OEE × Utilization (Utilization = Planned Production Time / All Time)
# NEE = Availability_uptime × Performance × Quality (excludes planned downtime)
Edge cases the engine MUST handle:
Microstops (< 5 min) → classified as Performance loss, NOT Availability loss (industry convention).
Speed loss → Performance < 1.0 even with no stops; surface as separate metric.
Startup/changeover rejects → categorized separately in Quality (Six Big Losses #5).
Performance > 100% → clamp to 1.0 AND emit warning (ideal cycle time may be set too conservatively).
Zero planned production time → return None, do NOT divide-by-zero.
Cite the formulas inline using a reference comment so future maintainers can audit:
# Source: ISO 22400-2:2014 Key Performance Indicators for Manufacturing Operations Management
VALIDATION: Unit tests in tests/test_oee_calc.py cover: known-good values, divide-by-zero, P>1.0 clamp, partial shift, all-scrap output. All tests must pass.
FALLBACK: If a formula edge case is ambiguous (e.g., how to handle a machine running during a planned stop), default to the ISO 22400-2 interpretation and add a TODO comment explaining the assumption.
============================================================
=== PHASE 3: SIX BIG LOSSES CATEGORIZER ===
Generate src/oee/six_big_losses.py that classifies downtime events into the canonical six categories:
#
Loss Category
OEE Bucket
Detection Rule (default)
1
Breakdowns / Equipment failure
Availability
unplanned stop > 5 min, fault code present
2
Setup & Adjustments
Availability
stop tagged "changeover" or between product runs
3
Small Stops / Idling
Performance
stop 0–5 min, no operator intervention
4
Reduced Speed
Performance
running but actual_rate < ideal_rate
5
Startup Rejects
Quality
scrap within first N units after run start
6
Production Rejects
Quality
scrap during steady-state production
The categorizer takes a stream of state events (timestamp, state, duration, fault_code, product) and emits classified loss events. Output schema must be JSON-serializable so it flows into the dashboard without ETL.
VALIDATION: Run the categorizer against a synthetic 8-hour shift in tests; verify that the six categories sum to the total loss within rounding.
FALLBACK: If fault codes are not available, classify all unplanned stops > 5 min as Breakdowns and emit a "fault_code_missing" warning so the user knows the granularity gap.
============================================================
=== PHASE 4: DATA INGESTION ADAPTER ===
Generate the ingestion adapter matching the user's data source. Each adapter MUST:
Externalize credentials via environment variables — never hardcode.
Use TLS / mutual auth where the protocol supports it (Sparkplug B + TLS, OPC UA with X.509).
Handle reconnect with exponential backoff (start 1s, cap 60s).
Emit a canonical event schema regardless of source protocol:
Subscribe to spBv1.0/{group}/DDATA/{edge_node}/{device}.
Decode protobuf payload (sparkplug_b.proto — include a copy in vendor/).
Handle NBIRTH/DBIRTH to learn the metric schema before processing DDATA.
OPC UA specifics:
Use asyncua (Python) — modern, asyncio-native, maintained.
Subscribe to changes (not poll). Set publishing interval to match the desired sample rate.
Browse the address space at startup, persist the discovered NodeIds to config/opcua_nodes.yaml.
Modbus specifics:
Use pymodbus. Register maps live in config/modbus_map.yaml.
Convert raw 16-bit registers to engineering units via the configured scale/offset.
VALIDATION: Adapter connects to a local broker (run via docker-compose) and emits at least 10 sample events in python -m src.ingest.<adapter> --test mode.
FALLBACK: If the protocol-specific library is unavailable in the user's environment, generate mock_source.py that replays a recorded CSV — pipeline still demonstrable end-to-end.
Quickstart: docker-compose up && python -m src.ingest.mock_source && open http://localhost:3000.
Formula reference table (so non-engineers can audit calculations).
How to swap the mock source for the real PLC/MQTT/OPC-UA source.
Industry context: "Deploy OEE first as foundation. Layer predictive maintenance as a 12-24 month follow-on. ROI for OEE alone is typically 9-18 months." [cite: 2026 TeepTrak deployment guide]
Known limitations (if any from PRE-FLIGHT gaps).
VALIDATION: README quickstart actually works on a fresh machine.
Complete: Does the pipeline ingest real or simulated data, compute OEE correctly per ISO 22400-2, categorize the Six Big Losses, and render a usable dashboard?
Robust: Does the calc handle microstops, divide-by-zero, P>1.0 clamp, partial shifts? Does the ingestion reconnect on failure?
Clean: Is the code formatted (black/ruff for Python), typed (mypy/pyright clean), and free of unused stubs?
Industry-credible: Would a controls engineer / continuous improvement engineer recognize the terminology and formulas as correct? (This is the killer dimension — wrong formulas destroy trust instantly.)
If any < 4:
Identify the specific gap. Most common gap: Performance formula uses average cycle time instead of ideal cycle time → silently inflates OEE. Fix and re-test.
If a gap is genuinely unfixable in this run (e.g., the user can't provide ideal cycle time), note it in the README under "Known Limitations" with a clear remediation path.
Never invent formula variants. Use ISO 22400-2 conventions or cite an explicit alternative.
Never hardcode credentials or broker URLs. Externalize via env vars.
Never claim a number you didn't calculate from real or mock data. The dashboard MUST be backed by the calc engine, not by static placeholders.
Never skip the Six Big Losses categorizer. Total OEE without the loss breakdown is the most common failure mode — it tells management things are bad without telling engineers what to fix.
If the user has an existing OEE platform, do NOT regenerate the pipeline — recommend a connector instead.
Reviews
No reviews yet. Tell others what you thought.
Comments
No login needed. Share how it worked for you, ask a question, or note where it did not run.
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".
The English summary is being prepared. Showing the original description.
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..
The English summary is being prepared. Showing the original description.
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..
The English summary is being prepared. Showing the original description.
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.
The English summary is being prepared. Showing the original description.
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..
The English summary is being prepared. Showing the original description.
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.
The English summary is being prepared. Showing the original description.