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}