ERPNext’s manufacturing module tracks Work Orders, Job Cards, and BOMs, but has no live shop-floor picture - no OEE, no downtime taxonomy, no finite-capacity scheduling, and no governed way for a sensor or automated rule to request a change without a human losing visibility into who (or what) asked for it. frappe/erpnext#50827 asked for exactly this and was closed with the core team’s call that it needs its own product, the way Frappe CRM relates to ERPNext. This is that product.
What’s built:
- Governed action layer - every write (human, sensor, or agent) goes through one Action to Action Log pipeline. Source is hardcoded per calling surface, not caller-supplied, so it can’t be spoofed. Agent-sourced requests always require human approval, enforced in code.
- Shop-floor execution - downtime logging, a background OEE job (Availability x Performance x Quality), Andon alerts, live dashboard at
/app/shop-floor. - Finite-capacity scheduler - changeover-aware greedy placement, audited scheduling runs with rollback, a native drag-to-reschedule Gantt at
/app/schedule-gantt(no external library). - Agent/IoT - HMAC-authenticated webhook for machine events, rule-based agent evaluation (structured conditions, no arbitrary code eval), everything lands pending approval.
Doesn’t duplicate ERPNext’s own Plant Floor (v15+), which is a real-time status dashboard. Floorgraph adds the OEE math, downtime taxonomy, and governance layer on top.
MIT licensed. 71 tests, CI green on Frappe/ERPNext v15 and v16.
Marketplace: https://cloud.frappe.io/marketplace/apps/floorgraph
Repo: GitHub - s1dharthpv/floorgraph: Governed action-graph MES layer for ERPNext · GitHub
Feedback and issues welcome, this is early and I’d rather hear what’s wrong now than after someone’s running it on a real shop floor.
(Full demo GIF, log downtime, approve, drag-reschedule, is in the repo README, too large to attach here.)
[grid]
[/grid]


