nx_ferment_recipes.nx
buildroot/runtime/nx_ferment_recipes.nx
about
nx_ferment_recipes.nx -- R4 of the FERMENTATION ladder: the RECIPE
CATALOG. A data-driven library of named fermentations -- yogurt, soft
and aged cheese, sauerkraut, kimchi, kombucha, tempeh -- so "build a
cheesemaker and yogurt maker and other fermentation" is a LOOKUP, not
bespoke code. Per Rule 6/11 the parameters are DATA in a catalog, not
magic numbers in logic.
THE EXCEED: every catalog entry is checked against the R0 never-poison
law (nx_ferment_validate). A cookbook lists times; it cannot prove a
recipe is structurally safe. Here a deliberately-unsafe spec (raw-milk
cheese under the 60-day floor; under-salted brine) is REFUSED by the
same gate the live process uses -- so the catalog cannot ship a
poison-by-construction recipe.
genealogy_id: nishi_ferment_safety_r0 + data_driven_catalog_rule_11
dependencies 2 imports · 7 importers
imports: nx_syscalls.nxnx_ferment_safety.nx
imported by: nx_ferment_cultures.nxnx_ferment_cultures_test.nxnx_ferment_recipes_test.nxnx_vessel_design_test.nxnx_vessel_geometry_test.nxnx_vessel_twin.nxnx_vessel_twin_test.nx
structs
| 31 | struct NxFermentRecipeSpec |
consts
| 22 | const NX_RCP_YOGURT: i64 = 0 |
| 23 | const NX_RCP_CHEVRE: i64 = 1 // soft pasteurised cheese |
| 24 | const NX_RCP_CHEDDAR: i64 = 2 // aged raw-milk cheese (>=60 d) |
| 25 | const NX_RCP_SAUERKRAUT: i64 = 3 |
| 26 | const NX_RCP_KIMCHI: i64 = 4 |
| 27 | const NX_RCP_KOMBUCHA: i64 = 5 |
| 28 | const NX_RCP_TEMPEH: i64 = 6 |
| 29 | const NX_RCP_N: i64 = 7 |
functions
| 43 | func nx_ferment_recipe(name_id: i64) -> *NxFermentRecipeSpec |
| 121 | func nx_ferment_recipe_safe(env: *NxFermentSafetyEnvelope, s: *NxFermentRecipeSpec) -> nx_int |