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}