nx_takedown_gate.nx
buildroot/runtime/nx_takedown_gate.nx
about
nx_takedown_gate.nx -- REFEREE for W-TD-1 (nx_takedown): the SAFE-HARBOUR / INTERMEDIARY posture.
OPERATOR: "it's the same thing as the dmca -- i don't want to inherit the legal headaches of any
of this, but just be in the social media legal world."
So the teeth below encode what that world ACTUALLY requires of an intermediary, and -- just as
importantly -- what it does NOT: no pre-publication arbitration, because editorial screening is
what converts a conduit into a publisher, and because ACTUAL KNOWLEDGE is what defeats 512(c).
[T1] a complete notice is valid; [T2-T6] each missing element invalidates it (5 neg-controls).
[T7] ★an INVALID notice is REFUSED, never actioned -- a wrongful takedown is its own liability.
[T8] NCII carries the real 48h statutory clock.
[T9] copyright is "expeditious" -- we refuse to invent a number the statute does not give.
[T10] overdue arithmetic works on a real clock; [T11] and cannot fire on an unnumbered one.
[T12] valid NCII -> REMOVE. [T13] valid copyright -> REMOVE.
[T14] defamation -> REVIEW_HUMAN (a host cannot find facts; 230 shields hosting).
[T15] publicity -> REVIEW_HUMAN.
[T16] ⛔CSAM -> PRESERVE_AND_REPORT, never REMOVE. Silent deletion destroys evidence.
[T17] ⛔and CSAM keeps that duty even on an INCOMPLETE notice -- a defective form does not
dissolve a statutory obligation. This is the one class with no safe harbour: 230(e)(1)
excludes federal criminal law and 2258A imposes an affirmative report duty.
[T18] copyright is restorable via counter-notice; [T19] NCII is NOT; [T20] CSAM is NOT.
[T21] 512(i) repeat policy fires at the threshold; [T22] and not below it.
Evidence -> stdout + knowledge/status/takedown_gate.log. Exit 0 GREEN / 1 RED.
⚠NOT LEGAL ADVICE -- this is the SHAPE of the regime, mechanised so a human can answer quickly.
Sovereign x86_64. license_tier: ORIGINAL expect_exit: 0
dependencies 2 imports · 0 importers
imports: nx_syscalls_x86_64.nxnx_takedown.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| none |
functions
| 30 | func gp(logfd: i64, s: *u8) -> i64 |
| 37 | func gn(logfd: i64, v: i64) -> i64 |
| 51 | func pr(logfd: i64, label: *u8, got: i64, exp: i64, passp: *i64, totalp: *i64) -> i64 |
| 61 | func main() -> i64 |