Turn lab SOPs into portable “attempt/controlled/forbid” decisions with proof
Problem → Fit
Problem. Labs and plants juggle readings, SOP text, and tribal memory. When incidents occur, people argue what “safe” meant at the time.
Fit. SSMDE attaches bounded stability, plain-language permission bands, a declared manifest, and a verifiable stamp to each state—so “allowed / controlled / forbidden” is explicit and replayable.
Build a bounded safety dial (align) once—use it everywhere
Declare a_raw for the chemistry context (pick one, document in the manifest), then run the invariant pipeline:
a_c := clamp(a_raw, -1+eps_a, +1-eps_a)
u := atanh(a_c)
U += w * u
W += w
align := tanh( U / max(W, eps_w) )
Collapse parity: phi((m,a)) = m (the raw value stays untouched).
Common a_raw choices (declare exactly one per manifest):
a_raw := -exceed_ratio( pressure_bar / P_safe_max )
a_raw := -exceed_ratio( temperature_K / T_safe_max )
a_raw := margin_to_pivot( (temperature_K - T_pivot) / DeltaT_pivot )
a_raw := feasibility_signal( kinetics_ok, vent_ok, inhibitor_margin )
a_raw := incompatibility_inverse( hazard_pairing_score ) # higher score → lower a_raw
Semantics (must be stated):positive = within safe envelope, negative = instability or forbidden proximity.
Map align to human-action bands (operational, not decorative)
Declare cutpoints and actions in the manifest:
bands := [
{ name:"GREEN", range:"[+0.30, +1.00)", action:"allowed under SOP" },
{ name:"AMBER", range:"[-0.20, +0.30)", action:"controlled: containment protocol only; supervisor review <= 30m" },
{ name:"RED", range:"(-1.00, -0.20)", action:"forbidden: do not attempt; escalate safety <= 10m" }
]
- GREEN = proceed normally.
- AMBER = containment/controlled procedure only.
- RED = do not attempt (no execution without explicit override protocol).
What a chemistry SSMDE record looks like
Minimal (policy-carrying)
{
value: { temperature_K: 296.42, pressure_bar: 4.8, solvent: "X17" },
band: "AMBER",
manifest_id: "CHEM_LAB3_PILOT_v9"
}
Full (audit-grade)
{
value: { temperature_K: 296.42, pressure_bar: 4.8, solvent: "X17" },
align: -0.24,
band: "AMBER",
manifest_id: "CHEM_LAB3_PILOT_v9",
stamp: "SSMCLOCK1|2025-11-05T12:26:03Z|sha256=41d7...|prev=2b6f..."
}
How to read it: the numbers are exact, align is bounded stability, band is immediate permission, manifest_id anchors SOP cutpoints, and stamp proves when/sequence.
Producer workflow (instrument → gateway)
[ ] Emit raw value(s) exactly (no “safety rounding”)
[ ] Compute a_raw as declared for this recipe/batch
[ ] Run clamp → atanh → fuse → tanh → align
[ ] Map band via manifest cutpoints and actions
[ ] Attach manifest_id and stamp
Consumer workflow (DCS/LIMS/ELN/safety console)
IF band == "GREEN" → allow SOP step
IF band == "AMBER" → switch to containment protocol; require supervisor sign-off
IF band == "RED" → hard block; page safety within declared window
Declaring pivots and forbidden zones (make it explicit)
Many hazards are pivot-centric (freeze/boil, runaway, incompatibility). Declare them so others can replay:
pivot := { tag:"runaway_onset",
variable:"temperature_K",
T_pivot: 342.0,
DeltaT_pivot: 3.0,
c: 1.2 }
a_raw := ( temperature_K - T_pivot ) / DeltaT_pivot # then go through the invariant pipeline
Optionally combine multiple pivots into one feasibility signal (document the composition rule in the manifest).
Copy-ready examples
Allowed (GREEN)
{
value: { reactor:"R-12", temperature_K: 304.1, pressure_bar: 2.6 },
align: +0.44,
band: "GREEN",
manifest_id: "CHEM_RECIPE_A_STAGE2_v4",
stamp: "SSMCLOCK1|2025-11-05T12:33:44Z|sha256=9ac1...|prev=41d7..."
}
Controlled (AMBER)
{
value: { reactor:"R-12", temperature_K: 340.9, pressure_bar: 3.9 },
align: -0.12,
band: "AMBER",
manifest_id: "CHEM_RECIPE_A_STAGE3_v4",
stamp: "SSMCLOCK1|2025-11-05T12:38:05Z|sha256=3a77...|prev=9ac1..."
}
Forbidden (RED)
{
value: { reactor:"R-12", temperature_K: 346.2, pressure_bar: 5.1 },
align: -0.53,
band: "RED",
manifest_id: "CHEM_RECIPE_A_STAGE3_v4",
stamp: "SSMCLOCK1|2025-11-05T12:39:17Z|sha256=b012...|prev=3a77..."
}
Verification checklist (receiver)
[ ] -1 < align < +1
[ ] band == band_from_align(align, manifest_id)
[ ] stamp.sha256 matches canonical bytes; chain(prev) verifies
[ ] phi((m,a)) = m # value untouched
[ ] a_raw choice and semantics match manifest
One-line takeaway
SSMDE converts chemistry states into clear permission language with timelines—attempt, controlled, or forbid—backed by bounded math, declared policy, and stamped proof.
Navigation
Previous: SSMDE – Industrial / Hardware Health (3.3)
Next: SSMDE – How align Is Computed (4.0–4.7)
Directory of Pages
SSMDE – Table of Contents