Develop¶
For the person who changes it.
- Architecture — written before the first line of code and kept truthful since; it says where intent and code differ.
- Your first module — the entry-point mechanism, with the ERPNext connector as the worked example.
- Style — the operator UI's rules.
- Decisions — why things are the way they are.
- CONTRIBUTING — DCO, the six house rules, the provenance rule.
The layout, as of 2026-09-07:
src/fsmes/
api/ FastAPI app and routers — every capability is an endpoint first
services/ the rules: execution, quality, OEE, scheduling, agent, …
domain/ the tables (SQLAlchemy) and calendar arithmetic
integrations/ opc/ (agent, simulator, worksheet, security), erp/ (contract, adapters)
mcp/ + mcp_server.py the product's tools, one file per area
sim/ line generation, scoring, sweeps, agent evals, UI checks
web/ the operator UI: plain HTML, CSS and JS, no build step
plant.py registries and the plant supervisor
cli.py every command
labs/ simulated plants and the experiments that measured them
alembic/ migrations
tests/ named as prose