Decisions¶
Why things are the way they are, one page each, with the options that lost. A record marked proposed is a recommendation nobody has accepted yet; it says what would change, not what has. A design change starts as an Ideas discussion using the template; the accepted or declined outcome lands here. Declined ideas stay, so nobody re-proposes them without new facts.
| # | Decision | Date |
|---|---|---|
| 0001 | Apache-2.0 with the DCO, not copyleft, not a CLA | 2026-08-28 |
| 0002 | A kernel plus modules that register through entry points | 2026-08-28 |
| 0003 | One product MCP server with per-area tool files | 2026-09-02 |
| 0004 | Never invent production: the counter discipline | 2026-08-31 |
| 0005 | Plain HTML, CSS and JS for the operator UI, no build step | 2026-08-28 |
| 0006 | SQLite on a laptop, PostgreSQL in a plant, no historian product | 2026-08-28 |
| 0007 | The public repository starts from a clean first commit | 2026-09-06 |
| 0008 | ERP connectors are modules inside the package | 2026-09-06 |
| 0009 | The project lives in a GitHub organisation named factorysemantics |
2026-09-06 |
| 0010 | GitHub Discussions is the only community venue | 2026-09-06 |
| 0011 | MkDocs Material, with the developer reference generated from the code | 2026-09-06 |
| 0012 | Contributor Covenant 3.0 as the code of conduct | 2026-09-06 |
| 0013 | Governance is one page: one maintainer, proposals in public | 2026-09-06 |
| 0014 | The first public version is 0.1.0, gated on a readiness checklist | 2026-09-06 |
| 0015 | The MCP server is registered as com.factorysemantics/mes |
2026-09-06 |
| 0016 | No trademark registration for the name | 2026-09-06 |
| 0017 | One public demo, gated by an emailed link and bounded by limits | 2026-09-07 |
| 0018 | Public on 2026-09-08, and a release check that runs the built wheel | 2026-09-08 |
| 0019 | Count everything the machine counted: over-runs are booked, surplus is unassigned production | 2026-09-09 |
| 0020 | What "supported" means for an ERP connector, and what it is called before that | 2026-09-10 |
| 0021 | A fleet is many databases, and site scoping is identity, not partitioning | 2026-09-10, accepted 2026-09-13 |
| 0022 | A plant pack is data, carries no code and no secrets, and cannot change what a number means | 2026-09-10, accepted 2026-09-13 |
| 0023 | Proposed — the console manages only the plants it owns, observes every other plant, and silence is unknown | 2026-09-10, revised 2026-09-13 |
| 0024 | A non-conformance is worked through review and a disposition, and cannot be closed without one | 2026-09-14 |
| 0025 | OEE performance is measured against the rating, and never capped at 1.0 | 2026-09-14, amended by 0026 |
| 0026 | Counted work that will not fit inside the run time names the disagreement, not a culprit — and, since the amendment, prints no figure | 2026-09-14, amended 2026-09-18 |
| 0027 | An SPC signal raises a quality hold, and an inspected characteristic with a specification is a check | 2026-09-14 |
| 0028 | A shift is half-open, belongs to the day it started, and covers nothing it does not roster | 2026-09-14 |
| 0029 | An order does not finish itself at its quantity; the over-run it reports is the true one | 2026-09-14 |
| 0030 | A lost connection is a dimension of its own, and the gap it leaves is unknown time | 2026-09-14 |
| 0031 | Proposed — a typed judgment is a proposal: it carries its probabilities, and never touches a graded number or a gate | 2026-09-17 |
| 0032 | Proposed — a hosted judgment is an outbound path, classified by the state it sends | 2026-09-17 |
| 0033 | Availability is a share of what was watched, and every figure says how much that was | 2026-09-17 |
| 0034 | A count the machine made is owed until it is booked, and a reading that fails is retried rather than forgotten | 2026-09-18 |
| 0035 | Accepted — configuration is authored by the role that owns it, and selected by the operator | 2026-09-18, amended by 0036 |
| 0036 | The chart draws and records every SPC rule; which of them raise a quality hold is the plant's, and defaults to all four | 2026-09-22 |
| 0038 | An agent is an account with a role, a tool set, a cadence, a budget and a data class, and what it produces is a proposal — accepted 2026-09-28 with two amendments: the harness changes the product's own code, and it is the engine of all product improvement | 2026-09-27 |
| 0039 | Accepted — a deep analysis is a recorded computation that can only read, and it counts people before it names one | 2026-09-29 |
| 0040 | Accepted — a characteristic's sampling plan is on its specification, and the chart type follows it: individuals one piece at a time, X-bar and R when the plan says n at a time, with the rules run on the means | 2026-10-06 |
| 0041 | Accepted — a characteristic whose specification says counted is recorded as one row per inspected stretch — how many were looked at, how many sent back, which defects — and charted as a p chart with limits computed per point, rule 1 only, and no capability figure |
2026-10-11 |
| 0042 | Accepted — a plant is its database, and a node is a process that asks the database whether it may write: one lease row per role, the counter baselines moved into the booking's own transaction, PostgreSQL only | 2026-10-15 |