code wiki / (root) / nx_governance_behavior.nx

nx_governance_behavior.nx source

↩ module page · 99 lines · 5095 B

1// nx_governance_behavior.nx -- sealed bannable-BEHAVIOR enum. 2// 3// license_tier: PUBLIC_NISHI_SUBSTRATE 4// genealogy_id: 1st_amendment_speech_vs_conduct_distinction + 5// cda_section_230 + ietf_mod_taxonomy + 6// nishi_pillar_3_censorship_critique_2026 7// 8// Pillar 3 of the greenhouse prevention framework: make the 9// behavior-vs-viewpoint distinction MECHANICAL. This file is the 10// sealed enum of BANNABLE BEHAVIORS. There is intentionally NO 11// corresponding bannable-viewpoint enum. Viewpoints get tagged 12// (see nx_governance_viewpoint_tag.nx) and filtered; never banned. 13// 14// The type system guarantee: a ModerationAction primitive requires 15// a value of type `nx_governance_behavior` to construct. No 16// codepath exists to construct a ModerationAction from a viewpoint 17// tag. Compile-time enforcement. 18// 19// ===== The behaviors ============================================== 20// 21// Each is objectively definable; each requires evidence; each is 22// appealable via tribunal-of-three (random verified growers from 23// outside the disputants' chapters). 24// 25// HARASSMENT_TARGETED - sustained targeting of an 26// identifiable individual with 27// abuse, threats, doxxing 28// setup, etc. 29// DOXXING - publishing private information 30// (home address, employer, 31// children's school) without 32// consent. 33// FRAUD_CONFIRMED - in marketplace context: tribunal 34// confirmed fraudulent transaction 35// (seed never shipped, lineage 36// falsified, identity stolen). 37// REPEATED_OBJECTIVE_FALSE - repeated factual claims 38// contradicted by tribunal- 39// verified evidence (e.g. faking 40// germ rates with photos that 41// don't match documented batches). 42// SPAM_AUTOMATED - automated content posting at 43// rates incompatible with human 44// operation. 45// THREAT_OF_VIOLENCE - specific, credible threat of 46// physical harm. 47// CHILD_SAFETY - any content harmful to minors; 48// one-strike, no tribunal 49// required. 50// IP_FRAUD - selling patented / PVP-protected 51// seeds via the network (which is 52// intentionally OP/OSSI-only per 53// nx_ip_filter). 54 55const NX_GOV_BEHAVIOR_HARASSMENT_TARGETED: i64 = 1 56const NX_GOV_BEHAVIOR_DOXXING: i64 = 2 57const NX_GOV_BEHAVIOR_FRAUD_CONFIRMED: i64 = 3 58const NX_GOV_BEHAVIOR_REPEATED_OBJECTIVE_FALSE: i64 = 4 59const NX_GOV_BEHAVIOR_SPAM_AUTOMATED: i64 = 5 60const NX_GOV_BEHAVIOR_THREAT_OF_VIOLENCE: i64 = 6 61const NX_GOV_BEHAVIOR_CHILD_SAFETY: i64 = 7 62const NX_GOV_BEHAVIOR_IP_FRAUD: i64 = 8 63 64func nx_gov_behavior_name(v: i64) -> *u8 { 65 if v == NX_GOV_BEHAVIOR_HARASSMENT_TARGETED { return "HARASSMENT_TARGETED" } 66 if v == NX_GOV_BEHAVIOR_DOXXING { return "DOXXING" } 67 if v == NX_GOV_BEHAVIOR_FRAUD_CONFIRMED { return "FRAUD_CONFIRMED" } 68 if v == NX_GOV_BEHAVIOR_REPEATED_OBJECTIVE_FALSE { return "REPEATED_OBJECTIVE_FALSE" } 69 if v == NX_GOV_BEHAVIOR_SPAM_AUTOMATED { return "SPAM_AUTOMATED" } 70 if v == NX_GOV_BEHAVIOR_THREAT_OF_VIOLENCE { return "THREAT_OF_VIOLENCE" } 71 if v == NX_GOV_BEHAVIOR_CHILD_SAFETY { return "CHILD_SAFETY" } 72 if v == NX_GOV_BEHAVIOR_IP_FRAUD { return "IP_FRAUD" } 73 return "UNKNOWN" 74} 75 76// Some behaviors are one-strike (no tribunal); others require 77// tribunal review. 78func nx_gov_behavior_is_one_strike(v: i64) -> i64 { 79 if v == NX_GOV_BEHAVIOR_CHILD_SAFETY { return 1 } 80 if v == NX_GOV_BEHAVIOR_THREAT_OF_VIOLENCE { return 1 } 81 return 0 82} 83 84// === Sealed ModerationVerdict ===================================== 85 86const NX_GOV_MOD_WARNED: i64 = 1 87const NX_GOV_MOD_RELOCATED_OFFTOPIC: i64 = 2 88const NX_GOV_MOD_RATE_LIMITED: i64 = 3 89const NX_GOV_MOD_CHAPTER_QUARANTINED: i64 = 4 90const NX_GOV_MOD_EXPELLED: i64 = 5 91 92func nx_gov_mod_verdict_name(v: i64) -> *u8 { 93 if v == NX_GOV_MOD_WARNED { return "WARNED" } 94 if v == NX_GOV_MOD_RELOCATED_OFFTOPIC { return "RELOCATED_TO_OFFTOPIC" } 95 if v == NX_GOV_MOD_RATE_LIMITED { return "RATE_LIMITED" } 96 if v == NX_GOV_MOD_CHAPTER_QUARANTINED { return "CHAPTER_QUARANTINED" } 97 if v == NX_GOV_MOD_EXPELLED { return "EXPELLED" } 98 return "UNKNOWN" 99}