code wiki / (root) / nx_readiness.nx

nx_readiness.nx source

↩ module page · 135 lines · 6394 B

1// nx_readiness.nx -- PRODUCT-READINESS engine (operator: "evaluate from the 2// hardware rung up each rung what we need to do to get this to market, not 3// just water but all things"). The real frameworks: NASA/DoD Technology 4// Readiness Levels (TRL 1-9) and Manufacturing Readiness Levels (MRL 1-10), 5// with per-rung EXIT CRITERIA (what advancing that rung requires), a gap 6// analysis to market, and the specific next HARDWARE rung for a physical 7// product. Generic across every Nishi capability. 8// 9// Honest by construction: a software-only capability reaches TRL 9 as 10// deployed software; a HARDWARE product (a water appliance, a fermenter) 11// sits at TRL ~3 while it is only a gated computational model + design -- 12// it must climb the physical rungs (bench prototype -> lab-validate -> 13// relevant-environment -> operational prototype -> qualify/certify -> 14// pilot line -> production) to reach market. 15// 16// grounded: nasa_dod_technology_readiness_levels + dod_manufacturing_readiness_levels 17// + phase_gate_new_product_development + verification_and_validation 18// genealogy_id: product_readiness_trl_mrl + nishi_go_to_market 19 20import "nx_syscalls.nx" 21 22// ===== Product kind =============================================== 23 24const RD_SOFTWARE: i64 = 0 // software IS the product (deploy = TRL 9) 25const RD_HARDWARE: i64 = 1 // physical product (must climb the build rungs) 26const RD_HYBRID: i64 = 2 // software + hardware appliance 27 28// ===== Validity =================================================== 29 30func rd_trl_valid(level: i64) -> i64 { 31 if level < 1 { return 0 } 32 if level > 9 { return 0 } 33 return 1 34} 35func rd_mrl_valid(level: i64) -> i64 { 36 if level < 1 { return 0 } 37 if level > 10 { return 0 } 38 return 1 39} 40 41// ===== TRL definitions (NASA/DoD) ================================= 42 43func rd_trl_name(level: i64) -> *u8 { 44 if level == 1 { return "basic principles observed" as *u8 } 45 if level == 2 { return "technology concept formulated" as *u8 } 46 if level == 3 { return "experimental proof of concept" as *u8 } 47 if level == 4 { return "technology validated in lab" as *u8 } 48 if level == 5 { return "technology validated in a relevant environment" as *u8 } 49 if level == 6 { return "technology demonstrated in a relevant environment" as *u8 } 50 if level == 7 { return "system prototype demonstrated in an operational environment" as *u8 } 51 if level == 8 { return "system complete and qualified" as *u8 } 52 if level == 9 { return "actual system proven in an operational environment" as *u8 } 53 return "invalid TRL" as *u8 54} 55 56// What advancing TO this level requires (the actionable exit criterion). 57func rd_trl_exit(level: i64) -> *u8 { 58 if level == 2 { return "formulate the concept and its intended application" as *u8 } 59 if level == 3 { return "prove the concept analytically or experimentally (a gated model counts)" as *u8 } 60 if level == 4 { return "build a bench prototype and validate the technology in a lab" as *u8 } 61 if level == 5 { return "validate the technology in a relevant (near-real) environment" as *u8 } 62 if level == 6 { return "demonstrate a full-scale prototype in a relevant environment" as *u8 } 63 if level == 7 { return "run an operational-environment field pilot of the system" as *u8 } 64 if level == 8 { return "qualify + certify the finished system (test, standards, regulatory)" as *u8 } 65 if level == 9 { return "operate the system at scale and prove it in real use" as *u8 } 66 return "already at basic-principles" as *u8 67} 68 69// ===== MRL definitions (DoD) ====================================== 70 71func rd_mrl_name(level: i64) -> *u8 { 72 if level == 1 { return "basic manufacturing implications identified" as *u8 } 73 if level == 2 { return "manufacturing concepts identified" as *u8 } 74 if level == 3 { return "manufacturing proof of concept developed" as *u8 } 75 if level == 4 { return "capability to produce in a lab environment" as *u8 } 76 if level == 5 { return "capability to produce prototype components in a production-relevant environment" as *u8 } 77 if level == 6 { return "capability to produce a prototype system in a production-relevant environment" as *u8 } 78 if level == 7 { return "capability to produce in a production-representative environment" as *u8 } 79 if level == 8 { return "pilot line demonstrated, ready for low-rate production" as *u8 } 80 if level == 9 { return "low-rate production demonstrated" as *u8 } 81 if level == 10 { return "full-rate production demonstrated" as *u8 } 82 return "invalid MRL" as *u8 83} 84 85// ===== Gap + advancement ========================================== 86 87func rd_gap(current: i64, target: i64) -> i64 { 88 if target <= current { return 0 } 89 return target - current 90} 91func rd_next_trl(current: i64) -> i64 { 92 if current >= 9 { return 9 } 93 return current + 1 94} 95func rd_trl_to_market(trl: i64) -> i64 { 96 return rd_gap(trl, 9) 97} 98func rd_mrl_to_market(mrl: i64) -> i64 { 99 return rd_gap(mrl, 10) 100} 101 102// The next physical rung for a hardware product at a given TRL. 103func rd_next_hardware_rung(trl: i64) -> *u8 { 104 if trl <= 3 { return "build the first bench prototype from the design spec" as *u8 } 105 if trl == 4 { return "test the prototype in a relevant environment vs the model" as *u8 } 106 if trl == 5 { return "demonstrate a full-scale unit in relevant conditions" as *u8 } 107 if trl == 6 { return "field-pilot the system in real operation" as *u8 } 108 if trl == 7 { return "qualify and certify the unit (NSF/UL/regulatory)" as *u8 } 109 if trl == 8 { return "stand up a pilot manufacturing line" as *u8 } 110 return "scale production and ship" as *u8 111} 112 113// ===== Market-readiness verdicts ================================== 114 115// Software: deployed + qualified (TRL >= 8) is market-ready. 116// Hardware/hybrid: needs an operational prototype (TRL >= 7) AND a pilot 117// line (MRL >= 8) before market entry. 118func rd_market_entry_ready(kind: i64, trl: i64, mrl: i64) -> i64 { 119 if kind == RD_SOFTWARE { 120 if trl >= 8 { return 1 } 121 return 0 122 } 123 if trl >= 7 { if mrl >= 8 { return 1 } } 124 return 0 125} 126 127// Full market: proven in operation at full production. 128func rd_full_market(kind: i64, trl: i64, mrl: i64) -> i64 { 129 if kind == RD_SOFTWARE { 130 if trl >= 9 { return 1 } 131 return 0 132 } 133 if trl >= 9 { if mrl >= 9 { return 1 } } 134 return 0 135}