code wiki / _hdl_build / nx_scientist.nx

nx_scientist.nx source

↩ module page · 46 lines · 3159 B

1// nx_scientist.nx -- the NISHI SCIENTIST: the team's authoring + publishing arm (operator: Claude is 2// currently the publishing arm; the TEAM needs to write S-class-exceed publishable papers + docs that 3// survive OUTSIDE critics -- the world + the scientific method -- not just Claude+operator). The 4// Scientist assembles a PAPER from a proven capability so it stands on its own evidence. A paper 5// carries the six things the scientific method demands: 6// 1. a FALSIFIABLE claim at a tier (S/A/B) 4. the HONEST grade (from the Examiner) 7// 2. a reproducible METHOD 5. CAVEATS / limitations (from the Critic) 8// 3. EVIDENCE (gate passes + data) 6. a REPRODUCIBILITY gate (Librarian-persisted) 9// PUBLISHABLE iff: COMPLETE (all six) AND NO OVERCLAIM (claimed tier <= the honest Examiner grade -- 10// the cardinal sin against outside critics is claiming S for an A result) AND reproducible. RACI: 11// Writer drafts + Author owns the claim (both the Scientist); the LIBRARIAN is the publisher/archivist 12// (citations + persistence); the EXAMINER supplies the honest grade; the CRITIC supplies the caveats. 13// Honest boundary: prose polish may stay partly Claude/Modelwright-assisted, but the team OWNS the 14// scientific RIGOR -- the no-overclaim/evidence/reproducibility gates a paper must pass. 15// license_tier: ORIGINAL Refs: the scientific method; reproducibility; the Critic's no-gospel rule. 16 17import "nx_sclass_grader.nx" // SG_* tiers (claim tier + honest grade share the scale) 18import "nx_syscalls.nx" 19 20const SCI_REJECT: i64 = 0 // overclaim or unsound -> does not survive outside critics 21const SCI_REVISE: i64 = 1 // missing a component -> send back 22const SCI_PUBLISH: i64 = 2 // complete + honest + reproducible -> publishable 23 24// a paper is COMPLETE iff it carries all six scientific components. 25func sci_complete(has_claim: i64, has_method: i64, has_evidence: i64, has_grade: i64, has_caveats: i64, has_repro: i64) -> i64 { 26 if has_claim == 1 { if has_method == 1 { if has_evidence == 1 { if has_grade == 1 { if has_caveats == 1 { if has_repro == 1 { return 1 } } } } } } 27 return 0 28} 29 30// NO OVERCLAIM: the claimed tier must not exceed the honest Examiner grade. (S=4 A=3 B=2 on the SG scale.) 31func sci_no_overclaim(claim_tier: i64, honest_grade: i64) -> i64 { if claim_tier <= honest_grade { return 1 } return 0 } 32 33// the publish decision (the gate a paper must pass before it meets the world). 34func sci_decision(complete: i64, no_overclaim: i64, reproducible: i64) -> i64 { 35 if complete == 0 { return SCI_REVISE } 36 if no_overclaim == 0 { return SCI_REJECT } 37 if reproducible == 0 { return SCI_REVISE } 38 return SCI_PUBLISH 39} 40 41// convenience: assemble + decide in one call. 42func sci_review(has_claim: i64, has_method: i64, has_evidence: i64, has_grade: i64, has_caveats: i64, has_repro: i64, claim_tier: i64, honest_grade: i64) -> i64 { 43 let complete: i64 = sci_complete(has_claim, has_method, has_evidence, has_grade, has_caveats, has_repro) 44 let honest: i64 = sci_no_overclaim(claim_tier, honest_grade) 45 return sci_decision(complete, honest, has_repro) 46}