code wiki / (root) / nx_office_census.nx

nx_office_census.nx source

↩ module page · 262 lines · 29391 B

1// nx_office_census.nx -- the MEASURED, LIAR-KILLED scoreboard for the NISHI OFFICE SUITE vs the STATE OF THE ART 2// (2025/2026 conferences + industry leaders: Microsoft 365 Copilot, Google Workspace Gemini, LibreOffice 25.x). 3// Operator 2026-07-08: "do we have a SOTA office suite with all the features ... as of conferences from 25/26 and 4// the industry leaders?" -- this organ answers HONESTLY, never self-scored: each cell is PROVEN by reading the 5// REAL organ source on disk. PRESENT requires the implementing symbol to EXIST; ABSENT (the gap) requires it to 6// NOT exist ANYWHERE. EXCEEDS = a capability NO leader (incl. LibreOffice) has, cited. The SOTA feature BAR is 7// grounded in the web-fetched corpus knowledge/library/office-sota-bar-2026-07-08.txt (real 2025/2026 sources). 8// Coverage=(EXCEEDS+PRESENT)/total is a FEATURE-COVERAGE fraction, NOT a "beat everyone" score. A SOTA suite has 9// ~34 major feature areas; scoring LOW is the HONEST outcome for a young sovereign stack -- the point is to NAME 10// the gaps, not flatter. Liar-kill asserts the marquee gaps are REAL + coverage stays honest-low. 11// census-subject: product-surface (the suite has a public UI at nishifamily.com/office -- U-axes mandatory) 12// expect_exit: 0 license_tier: ORIGINAL 13import "nx_syscalls.nx" 14import "nx_itoa_lib.nx" // shared MSB-first emitter (zero-alloc) 15const K_MAGIC_262144: i64 = 262144 16 17func lc_w(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 } 18// MIGRATED to the shared emitter (debt 1785563586). The old body mmapped a scratch buffer 19// per call and never freed it. At PAGE granularity that is 4096B leaked PER CALL -- the 20// defect that took 28.5GB of a 36GB host in nx_ts_lumadiff (2MB input, ~3.66M calls). 21// nxi_* is MSB-first, allocates NOTHING, and emits identical bytes including the sign. 22func lc_n(v: i64) -> i64 { nxi_out(v); return 0 } 23func lc_read(path: *u8, buf: *u8, cap: i64) -> i64 { 24 let fd: i64 = sys_openat_rd(path); if fd < 0 { return 0 - 1 } 25 var tot: i64 = 0 26 while tot < cap { let r: i64 = sys_read(fd, (buf as i64 + tot) as *u8, cap - tot); if r <= 0 { break } tot = tot + r } 27 sys_close(fd); return tot 28} 29func lc_exists(path: *u8) -> i64 { let fd: i64 = sys_openat_rd(path); if fd < 0 { return 0 } sys_close(fd); return 1 } 30func lc_has(buf: *u8, n: i64, needle: *u8) -> i64 { 31 var i: i64 = 0 32 while i < n { var k: i64 = 0; var hit: i64 = 1 33 while needle[k] != (0 as u8) { if i + k >= n { hit = 0; k = 0 - 1; break } if buf[i+k] != needle[k] { hit = 0; break } k = k + 1 } 34 if hit == 1 { if k > 0 { return 1 } } i = i + 1 } 35 return 0 36} 37func lc_file_has(path: *u8, needle: *u8, buf: *u8, cap: i64) -> i64 { 38 let n: i64 = lc_read(path, buf, cap); if n <= 0 { return 0 } 39 return lc_has(buf, n, needle) 40} 41func lc_cell(cls: *u8, id: *u8, txt: *u8) -> i64 { lc_w(" ["); lc_w(cls); lc_w("] "); lc_w(id); lc_w(" "); lc_w(txt); lc_w("\n"); return 0 } 42 43func main() -> i64 { 44 lc_w("=== NX-OFFICE-CENSUS -- the Nishi office suite, MEASURED vs SOTA (Microsoft 365 Copilot / Google Workspace Gemini / LibreOffice 25.x, 2025/2026) ===\n" as *u8) 45 let cap: i64 = K_MAGIC_262144 46 let buf: *u8 = sys_mmap(cap) 47 48 let DOCX: *u8 = "runtime/_hdl_build/nx_docx.nx" 49 let ODT: *u8 = "runtime/_hdl_build/nx_odt.nx" 50 let XLSX: *u8 = "runtime/_hdl_build/nx_xlsx.nx" 51 let MERGE: *u8 = "runtime/_hdl_build/nx_mailmerge.nx" 52 let VDOC: *u8 = "runtime/_hdl_build/nx_vizsla_doc.nx" 53 let DGEN: *u8 = "runtime/_hdl_build/nx_vizsla_docgen.nx" 54 let EST: *u8 = "runtime/_hdl_build/nx_estate_inventory.nx" 55 let PPTX: *u8 = "runtime/_hdl_build/nx_pptx.nx" 56 let IMPR: *u8 = "runtime/_hdl_build/nx_impress.nx" 57 let COEDIT: *u8 = "runtime/_hdl_build/nx_coedit.nx" 58 let AISLIDE: *u8 = "runtime/_hdl_build/nx_ai_slides.nx" 59 let CORPUS: *u8 = "knowledge/library/office-sota-bar-2026-07-08.txt" 60 let SERVE: *u8 = "runtime/nx_office_serve.nx" 61 let APPJS: *u8 = "office_app.js" 62 63 // ---- PRESENT evidence (each proven by a real implementing symbol) ---- 64 let e_docx: i64 = lc_file_has(DOCX as *u8, "docx_write" as *u8, buf, cap) 65 let e_odt: i64 = lc_exists(ODT as *u8) & lc_file_has(ODT as *u8, "text:p" as *u8, buf, cap) 66 let e_merge: i64 = lc_exists(MERGE as *u8) & lc_file_has(MERGE as *u8, "{{" as *u8, buf, cap) 67 let e_xlsx: i64 = lc_file_has(XLSX as *u8, "fromtsv" as *u8, buf, cap) 68 let e_celltype: i64 = lc_file_has(XLSX as *u8, "inlineStr" as *u8, buf, cap) 69 let e_docmgmt: i64 = lc_file_has(VDOC as *u8, "VIZSLA-DOC-HISTORY" as *u8, buf, cap) 70 let e_docgen: i64 = lc_file_has(DGEN as *u8, "VIZSLA-DOCGEN" as *u8, buf, cap) 71 let e_estate: i64 = lc_exists(EST as *u8) & lc_file_has(EST as *u8, "history" as *u8, buf, cap) 72 let e_sov: i64 = (1 - lc_file_has(DOCX as *u8, "nx_socket" as *u8, buf, cap)) & (1 - lc_file_has(DOCX as *u8, "nx_tls" as *u8, buf, cap)) 73 let e_open: i64 = lc_exists(DOCX as *u8) & lc_exists(ODT as *u8) 74 // ---- EXCEEDS evidence (a capability even LibreOffice lacks) ---- 75 let x_ver: i64 = lc_file_has(VDOC as *u8, "VIZSLA-DOC-VERSION" as *u8, buf, cap) 76 77 // ---- gap evidence: 1 = the feature is genuinely ABSENT (proven by absence of the emit/impl symbol) ---- 78 let gap_fmt: i64 = 1 - lc_file_has(DOCX as *u8, "w:rPr" as *u8, buf, cap) // run-properties = formatting 79 let gap_tbl: i64 = 1 - lc_file_has(DOCX as *u8, "w:tblPr" as *u8, buf, cap) // table properties (emit-only) 80 let gap_img: i64 = 1 - lc_file_has(DOCX as *u8, "w:drawing" as *u8, buf, cap) 81 let gap_layout: i64 = 1 - lc_file_has(DOCX as *u8, "sectPr" as *u8, buf, cap) // sections/headers/footers 82 let gap_track: i64 = 1 - lc_file_has(DOCX as *u8, "w:ins" as *u8, buf, cap) // tracked insertions 83 let gap_comment: i64 = 1 - lc_file_has(DOCX as *u8, "commentReference" as *u8, buf, cap) 84 let gap_ref: i64 = 1 - lc_file_has(DOCX as *u8, "footnoteReference" as *u8, buf, cap) 85 let gap_spell: i64 = 1 - lc_file_has(DOCX as *u8, "spellcheck" as *u8, buf, cap) 86 let gap_formula: i64 = 1 - lc_file_has(XLSX as *u8, "<f>" as *u8, buf, cap) // SpreadsheetML formula cell 87 let gap_chart: i64 = 1 - lc_file_has(XLSX as *u8, "xl_chart_html" as *u8, buf, cap) // TIGHTENED 07-09: real render fn, not the word "chart" 88 let gap_pivot: i64 = 1 - lc_file_has(XLSX as *u8, "xl_pivot" as *u8, buf, cap) // TIGHTENED 07-09: real group-by fn, not the word 89 let gap_cond: i64 = 1 - lc_file_has(XLSX as *u8, "conditionalFormatting" as *u8, buf, cap) 90 let gap_macro: i64 = 1 - lc_file_has(XLSX as *u8, "macro" as *u8, buf, cap) 91 let gap_pptx: i64 = (1 - lc_exists(PPTX as *u8)) & (1 - lc_exists(IMPR as *u8)) 92 // TIGHTENED 07-09 (no-wave): the CRDT KERNEL alone (nx_coedit merge engine) is NOT "real-time co-editing" -- 93 // the axis flips only when the LIVE SYNC half exists. Needle = the function DEFINITION ("func cd_live_sync"), 94 // not the bare name: a comment MENTIONING the symbol flipped this once and the liar-kill went RED -- proof 95 // the defenses work, and why presence-needles must match definitions. 96 let gap_rt: i64 = 1 - lc_file_has(COEDIT as *u8, "func cd_live_sync" as *u8, buf, cap) 97 let gap_cshare: i64 = 1 - lc_file_has(VDOC as *u8, "acl" as *u8, buf, cap) // no ACL wired into docs 98 let gap_ai1: i64 = (1 - lc_file_has(DOCX as *u8, "llm" as *u8, buf, cap)) & (1 - lc_file_has(DGEN as *u8, "llm" as *u8, buf, cap)) 99 let gap_ai2: i64 = 1 - lc_file_has(XLSX as *u8, "llm" as *u8, buf, cap) 100 let gap_ai3: i64 = 1 - lc_exists(AISLIDE as *u8) 101 let gap_ai4: i64 = 1 - lc_file_has(DGEN as *u8, "agent_mode" as *u8, buf, cap) 102 let gap_sync: i64 = 1 - lc_file_has(VDOC as *u8, "oauth" as *u8, buf, cap) 103 104 let corpus: i64 = lc_exists(CORPUS as *u8) 105 lc_w(" -- SOTA bar grounded in corpus="); lc_n(corpus); lc_w(" (knowledge/library/office-sota-bar-2026-07-08.txt, web-fetched 2025/2026 sources)\n" as *u8) 106 107 var present: i64 = 0; var exceeds: i64 = 0; var absent: i64 = 0 108 109 lc_w(" --- WORD PROCESSOR (vs Word / Docs / Writer) ---\n" as *u8) 110 if e_docx == 1 { lc_cell("PRESENT" as *u8, "OF-W1 " as *u8, ".docx (OOXML) read/write -- nx_docx (minimal OPC package, real CRC-32, Word-openable)" as *u8); present = present + 1 } else { lc_cell("ABSENT " as *u8, "OF-W1 " as *u8, ".docx read/write" as *u8); absent = absent + 1 } 111 if e_odt == 1 { lc_cell("PRESENT" as *u8, "OF-W2 " as *u8, ".odt (ODF) read/write -- nx_odt (mimetype-first ODF package)" as *u8); present = present + 1 } else { lc_cell("ABSENT " as *u8, "OF-W2 " as *u8, ".odt read/write" as *u8); absent = absent + 1 } 112 if gap_fmt == 1 { lc_cell("ABSENT " as *u8, "OF-W3 " as *u8, "rich text FORMATTING (styles/bold/italic/fonts/colors) -- our .docx is plain paragraphs, no run-properties. Word/Docs/Writer ALL have it" as *u8); absent = absent + 1 } else { lc_cell("PRESENT" as *u8, "OF-W3 " as *u8, "rich text formatting" as *u8); present = present + 1 } 113 if gap_tbl == 1 { lc_cell("ABSENT " as *u8, "OF-W4 " as *u8, "TABLES -- not emitted (reader excludes them). A basic word-processor feature we lack" as *u8); absent = absent + 1 } else { lc_cell("PRESENT" as *u8, "OF-W4 " as *u8, "tables" as *u8); present = present + 1 } 114 if gap_img == 1 { lc_cell("ABSENT " as *u8, "OF-W5 " as *u8, "IMAGES / media embed -- no <w:drawing>" as *u8); absent = absent + 1 } else { lc_cell("PRESENT" as *u8, "OF-W5 " as *u8, "images" as *u8); present = present + 1 } 115 if gap_layout == 1 { lc_cell("ABSENT " as *u8, "OF-W6 " as *u8, "PAGE LAYOUT (headers/footers/sections/columns) -- no sectPr" as *u8); absent = absent + 1 } else { lc_cell("PRESENT" as *u8, "OF-W6 " as *u8, "page layout" as *u8); present = present + 1 } 116 if gap_track == 1 { lc_cell("ABSENT " as *u8, "OF-W7 " as *u8, "TRACK CHANGES / revisions -- no <w:ins>/<w:del> (NB: we DO have doc-level tamper-evident versioning, see OF-C4 -- different thing)" as *u8); absent = absent + 1 } else { lc_cell("PRESENT" as *u8, "OF-W7 " as *u8, "track changes" as *u8); present = present + 1 } 117 if gap_comment == 1 { lc_cell("ABSENT " as *u8, "OF-W8 " as *u8, "COMMENTS / annotations -- no commentReference" as *u8); absent = absent + 1 } else { lc_cell("PRESENT" as *u8, "OF-W8 " as *u8, "comments" as *u8); present = present + 1 } 118 if gap_ref == 1 { lc_cell("ABSENT " as *u8, "OF-W9 " as *u8, "TOC / footnotes / citations -- no footnoteReference" as *u8); absent = absent + 1 } else { lc_cell("PRESENT" as *u8, "OF-W9 " as *u8, "TOC/footnotes" as *u8); present = present + 1 } 119 if gap_spell == 1 { lc_cell("ABSENT " as *u8, "OF-W10" as *u8, "SPELL / grammar check -- no organ" as *u8); absent = absent + 1 } else { lc_cell("PRESENT" as *u8, "OF-W10" as *u8, "spell/grammar" as *u8); present = present + 1 } 120 if e_merge == 1 { lc_cell("PRESENT" as *u8, "OF-W11" as *u8, "MAIL MERGE -- nx_mailmerge ({{field}} template + data -> per-record .docx)" as *u8); present = present + 1 } else { lc_cell("ABSENT " as *u8, "OF-W11" as *u8, "mail merge" as *u8); absent = absent + 1 } 121 122 lc_w(" --- SPREADSHEET (vs Excel / Sheets / Calc) ---\n" as *u8) 123 if e_xlsx == 1 { lc_cell("PRESENT" as *u8, "OF-S1 " as *u8, ".xlsx read/write -- nx_xlsx (TSV grid -> valid SpreadsheetML, Excel-openable)" as *u8); present = present + 1 } else { lc_cell("ABSENT " as *u8, "OF-S1 " as *u8, ".xlsx read/write" as *u8); absent = absent + 1 } 124 if e_celltype == 1 { lc_cell("PRESENT" as *u8, "OF-S2 " as *u8, "cell TYPING (numeric <v> vs inlineStr text)" as *u8); present = present + 1 } else { lc_cell("ABSENT " as *u8, "OF-S2 " as *u8, "cell typing" as *u8); absent = absent + 1 } 125 if gap_formula == 1 { lc_cell("ABSENT " as *u8, "OF-S3 " as *u8, "FORMULAS / functions (SOTA=400+) -- no <f> formula cells. THE core spreadsheet feature; we store values only" as *u8); absent = absent + 1 } else { lc_cell("PRESENT" as *u8, "OF-S3 " as *u8, "formulas" as *u8); present = present + 1 } 126 if gap_chart == 1 { lc_cell("ABSENT " as *u8, "OF-S4 " as *u8, "CHARTS -- none" as *u8); absent = absent + 1 } else { lc_cell("PRESENT" as *u8, "OF-S4 " as *u8, "charts v1: NATIVE bar-chart render from sheet data incl computed formulas (in-FILE DrawingML c:chart = named follow-up)" as *u8); present = present + 1 } 127 if gap_pivot == 1 { lc_cell("ABSENT " as *u8, "OF-S5 " as *u8, "PIVOT TABLES -- none" as *u8); absent = absent + 1 } else { lc_cell("PRESENT" as *u8, "OF-S5 " as *u8, "pivot v1: NATIVE group-by SUM/COUNT/AVG+TOTAL over resolved sheet + pivothtml w/ chart (in-FILE pivotTable parts + drag-drop UI = named follow-ups)" as *u8); present = present + 1 } 128 if gap_cond == 1 { lc_cell("ABSENT " as *u8, "OF-S6 " as *u8, "conditional formatting / data validation -- none" as *u8); absent = absent + 1 } else { lc_cell("PRESENT" as *u8, "OF-S6 " as *u8, "conditional formatting" as *u8); present = present + 1 } 129 if gap_macro == 1 { lc_cell("ABSENT " as *u8, "OF-S7 " as *u8, "MACROS / scripting -- none" as *u8); absent = absent + 1 } else { lc_cell("PRESENT" as *u8, "OF-S7 " as *u8, "macros" as *u8); present = present + 1 } 130 131 lc_w(" --- PRESENTATION (vs PowerPoint / Slides / Impress) ---\n" as *u8) 132 if gap_pptx == 1 { lc_cell("ABSENT " as *u8, "OF-P1 " as *u8, "PRESENTATION app (.pptx/.odp author) -- NO organ exists. A suite without slides is not a full office suite" as *u8); absent = absent + 1 } else { lc_cell("PRESENT" as *u8, "OF-P1 " as *u8, "presentations" as *u8); present = present + 1 } 133 if gap_pptx == 1 { lc_cell("ABSENT " as *u8, "OF-P2 " as *u8, "slide RENDER / export -- none (no presentation engine)" as *u8); absent = absent + 1 } else { lc_cell("PRESENT" as *u8, "OF-P2 " as *u8, "slide render" as *u8); present = present + 1 } 134 135 lc_w(" --- COLLABORATION (the DEFINING 2020s feature; favors Workspace / M365) ---\n" as *u8) 136 if gap_rt == 1 { lc_cell("ABSENT " as *u8, "OF-C1 " as *u8, "REAL-TIME co-editing (multi-editor OT/CRDT) -- none. The single biggest gap vs the cloud leaders" as *u8); absent = absent + 1 } else { lc_cell("PRESENT" as *u8, "OF-C1 " as *u8, "real-time co-editing" as *u8); present = present + 1 } 137 if gap_cshare == 1 { lc_cell("ABSENT " as *u8, "OF-C2 " as *u8, "shared comments / @mentions / doc sharing+permissions -- not wired into docs (nx_vault ACL primitive exists but unwired)" as *u8); absent = absent + 1 } else { lc_cell("PRESENT" as *u8, "OF-C2 " as *u8, "sharing/comments" as *u8); present = present + 1 } 138 if x_ver == 1 { lc_cell("EXCEEDS" as *u8, "OF-C3 " as *u8, "VERSION HISTORY -- tamper-evident, content-addressed, ADDITIVE never-lose (old versions NEVER destroyed) -- NO mainstream suite incl LibreOffice has content-addressed tamper-evident history (cloud version history is mutable/deletable). nx_vizsla_doc + docgen" as *u8); exceeds = exceeds + 1 } else { lc_cell("ABSENT " as *u8, "OF-C3 " as *u8, "version history" as *u8); absent = absent + 1 } 139 140 lc_w(" --- IN-APP AI (the 2025/2026 HEADLINE differentiator: Copilot Agent Mode GA / Gemini) ---\n" as *u8) 141 if gap_ai1 == 1 { lc_cell("ABSENT " as *u8, "OF-A1 " as *u8, "in-doc AI DRAFT/REWRITE/SUMMARIZE (Copilot in Word, Gemini in Docs) -- none; bottlenecks on the LLM gap (trained-no-float-model)" as *u8); absent = absent + 1 } else { lc_cell("PRESENT" as *u8, "OF-A1 " as *u8, "in-doc AI" as *u8); present = present + 1 } 142 if gap_ai2 == 1 { lc_cell("ABSENT " as *u8, "OF-A2 " as *u8, "AI DATA ANALYSIS in sheets (Copilot in Excel, Fill with Gemini) -- none" as *u8); absent = absent + 1 } else { lc_cell("PRESENT" as *u8, "OF-A2 " as *u8, "AI data analysis" as *u8); present = present + 1 } 143 if gap_ai3 == 1 { lc_cell("ABSENT " as *u8, "OF-A3 " as *u8, "AI PRESENTATION generation (Copilot in PowerPoint, Gemini in Slides) -- none" as *u8); absent = absent + 1 } else { lc_cell("PRESENT" as *u8, "OF-A3 " as *u8, "AI presentations" as *u8); present = present + 1 } 144 if gap_ai4 == 1 { lc_cell("ABSENT " as *u8, "OF-A4 " as *u8, "AGENTIC multi-step (Copilot Agent Mode GA 2026-04 / Cowork) -- none. THE current frontier the leaders just shipped" as *u8); absent = absent + 1 } else { lc_cell("PRESENT" as *u8, "OF-A4 " as *u8, "agentic AI" as *u8); present = present + 1 } 145 146 lc_w(" --- STORAGE / DOCUMENT MGMT / SOVEREIGNTY (where a young sovereign stack can hold ground) ---\n" as *u8) 147 if e_docmgmt == 1 { lc_cell("PRESENT" as *u8, "OF-D1 " as *u8, "document MANAGEMENT (versioned store/get/history/list, rel-linked) -- nx_vizsla_doc" as *u8); present = present + 1 } else { lc_cell("ABSENT " as *u8, "OF-D1 " as *u8, "document management" as *u8); absent = absent + 1 } 148 if e_docgen == 1 { lc_cell("PRESENT" as *u8, "OF-D2 " as *u8, "office-doc GENERATION from structured data (fields -> .docx -> filed) -- nx_vizsla_docgen" as *u8); present = present + 1 } else { lc_cell("ABSENT " as *u8, "OF-D2 " as *u8, "doc generation" as *u8); absent = absent + 1 } 149 if e_estate == 1 { lc_cell("PRESENT" as *u8, "OF-D3 " as *u8, "records / estate-inventory workflow (never-lose, executor-conflict-reducer) -- nx_estate_inventory" as *u8); present = present + 1 } else { lc_cell("ABSENT " as *u8, "OF-D3 " as *u8, "records workflow" as *u8); absent = absent + 1 } 150 if gap_sync == 1 { lc_cell("ABSENT " as *u8, "OF-D4 " as *u8, "cloud / offsite SYNC (Drive/OneDrive) -- local seg_store only; oauth2 is roadmap" as *u8); absent = absent + 1 } else { lc_cell("PRESENT" as *u8, "OF-D4 " as *u8, "cloud sync" as *u8); present = present + 1 } 151 if e_sov == 1 { lc_cell("PRESENT" as *u8, "OF-D5 " as *u8, "SOVEREIGN: on-device, no cloud, NO telemetry / NO data-harvest -- PARITY with the open-source SOTA (LibreOffice); BETTER than the cloud leaders (M365/Workspace send data up). PRESENT (not EXCEEDS -- LibreOffice matches privacy)" as *u8); present = present + 1 } else { lc_cell("ABSENT " as *u8, "OF-D5 " as *u8, "sovereign/no-harvest" as *u8); absent = absent + 1 } 152 if e_open == 1 { lc_cell("PRESENT" as *u8, "OF-D6 " as *u8, "OPEN FORMAT / no lock-in (both OOXML .docx/.xlsx AND ODF .odt) -- PARITY with LibreOffice" as *u8); present = present + 1 } else { lc_cell("ABSENT " as *u8, "OF-D6 " as *u8, "open format" as *u8); absent = absent + 1 } 153 154 // ===== UI / PRODUCT AXES (U1-U4) -- the doctrine block ([[feedback-census-must-capture-ui-product-axes]]): 155 // the office suite has a USER-FACING SURFACE (nishifamily.com/office, :8030) so it MUST be scored on PRODUCT 156 // quality, not just format capability. Scored 0..2 vs a NAMED+DATED bar. 07-10: NEEDLE-DRIVEN -- every point 157 // above the standing baseline requires the implementing symbols to EXIST in the served surface (same 158 // definitions-law as the feature axes) AND nx_office_gate T12a-T12i executes the behavior (34/34). STRICT 159 // CAPS keep it honest: three of four axes are capped at 1 because the bar-level remainder is real and named 160 // below. The score moves only when the product actually moves. ===== 161 lc_w(" --- UI/PRODUCT AXES (U1-U4) vs REAL product bar: LibreOffice 25.x + OnlyOffice + Google Docs\n" as *u8) 162 lc_w(" (bars BANKED 2026-07-09 via nx_swcompare_research: pb_libreoffice_layers 145KB repo tree + pb_onlyoffice_webapps + pb_collabora) ---\n" as *u8) 163 // needles = markup/symbols the pages actually serve; a comment cannot fake these, and the gate RUNS them 164 let u_shell: i64 = lc_file_has(SERVE as *u8, "func of_shell_top" as *u8, buf, cap) 165 let u_thumb: i64 = lc_file_has(SERVE as *u8, "func of_thumb" as *u8, buf, cap) 166 let u_vars: i64 = lc_file_has(SERVE as *u8, "--acc:" as *u8, buf, cap) 167 let u_favi: i64 = lc_file_has(SERVE as *u8, "data:image/svg" as *u8, buf, cap) 168 let u_sort: i64 = lc_file_has(SERVE as *u8, "sort=name" as *u8, buf, cap) 169 let u_chip: i64 = lc_file_has(SERVE as *u8, "func of_chip" as *u8, buf, cap) 170 let u_empty: i64 = lc_file_has(SERVE as *u8, "No files match" as *u8, buf, cap) 171 let u_onbrd: i64 = lc_file_has(SERVE as *u8, "Create your first document" as *u8, buf, cap) 172 let u_find: i64 = lc_file_has(SERVE as *u8, "data-act='find'" as *u8, buf, cap) 173 let u_undo: i64 = lc_file_has(SERVE as *u8, "data-act='u'" as *u8, buf, cap) 174 let u_stamp: i64 = lc_file_has(SERVE as *u8, "id='savest'" as *u8, buf, cap) 175 let u_dark: i64 = lc_file_has(SERVE as *u8, ":root.dark" as *u8, buf, cap) 176 let u_resp: i64 = lc_file_has(SERVE as *u8, "@media(max-width:640px)" as *u8, buf, cap) 177 let u_trans: i64 = lc_file_has(SERVE as *u8, "transition:" as *u8, buf, cap) 178 let u_keys: i64 = lc_file_has(APPJS as *u8, "ctrlKey" as *u8, buf, cap) 179 let u_markj: i64 = lc_file_has(APPJS as *u8, "createTreeWalker" as *u8, buf, cap) 180 let u_theme: i64 = lc_file_has(APPJS as *u8, "localStorage" as *u8, buf, cap) 181 var u_got: i64 = 0 182 // U1 visual fidelity: 1 = coherent page (standing since 07-09); +1 needled = app shell + REAL content 183 // thumbnails + design-token system + brand mark, gate-executed (T12e). Editor-canvas gap stays under U2. 184 var u1: i64 = 1 185 u1 = u1 + (u_shell & u_thumb & u_vars & u_favi) 186 u_got = u_got + u1 187 lc_w(" [U1 "); lc_n(u1); lc_w("/2] visual fidelity -- sticky app shell (brand+search) + card grid w/ REAL content thumbnails (doc\n" as *u8) 188 lc_w(" headings, sheet cells, deck slides -- gate T12e) + light/dark design tokens + favicon. NEEDLED:\n" as *u8) 189 lc_w(" of_shell_top+of_thumb+tokens+brand all present. Bar: Docs-grade library visuals -- reached for the\n" as *u8) 190 lc_w(" LIBRARY; the EDITOR canvas (pagination/ruler/menus) stays a named gap under U2.\n" as *u8) 191 // U2 interaction depth: CAPPED at 1 -- undo/redo + find-with-highlights + shortcuts + sheet Enter-nav are 192 // now needled+gated (T12h/T12i), but the editing MODEL is line-based: NO inline rich runs (bold mid- 193 // sentence), NO images, NO comments, NO style panel, NO suggesting mode. That is what 2/2 requires. 194 var u2: i64 = 0 195 u2 = u2 + (u_find & u_undo & u_keys & u_markj) 196 u_got = u_got + u2 197 lc_w(" [U2 "); lc_n(u2); lc_w("/2] interaction depth -- undo/redo + find-in-file w/ cycling highlights + Ctrl+S/B/I/F shortcuts +\n" as *u8) 198 lc_w(" sheet Enter-nav + saving-state feel (needled: find/undo controls, ctrlKey, TreeWalker; gate T12h/i).\n" as *u8) 199 lc_w(" CAPPED 1/2: editing model is LINE-based -- no inline rich runs, images, comments, style panel,\n" as *u8) 200 lc_w(" suggesting mode. Bar: full Docs/OnlyOffice editing. That remainder = OF-W5/W7/W8 + rich runs.\n" as *u8) 201 // U3 information design: CAPPED at 1 -- search + type chips + recency/name sort + thumbnails + both empty 202 // states are needled+gated (T12a-T12g), but folders/starred/templates-gallery/shared-with-me are ABSENT. 203 var u3: i64 = 0 204 u3 = u3 + (u_shell & u_thumb & u_sort & u_chip & u_empty & u_onbrd) 205 u_got = u_got + u3 206 lc_w(" [U3 "); lc_n(u3); lc_w("/2] information design -- library is now a REAL app surface: search (?q=), type chips, recency+name\n" as *u8) 207 lc_w(" sort, content thumbnails, onboarding + no-match empty states (all server-rendered, zero-JS; gate\n" as *u8) 208 lc_w(" T12a-T12g executes each). CAPPED 1/2: NO folders, NO starred, NO templates gallery, NO sharing\n" as *u8) 209 lc_w(" views -- the Google Docs home has all four; those absents keep the second point out of reach.\n" as *u8) 210 // U4 product polish/feel: CAPPED at 1 -- transitions + persisted dark/light + responsive + save-feel + 211 // TRUE AUTOSAVE (07-10: debounced changed-only ajax=1 -> OK v<N>, versions tagged auto; gate T13a-d) are 212 // needled, but offline/PWA, loading skeletons and an a11y audit are still ABSENT = the 2/2 remainder. 213 let u_asave: i64 = lc_file_has(APPJS as *u8, "Autosaved v" as *u8, buf, cap) 214 var u4: i64 = 0 215 u4 = u4 + (u_trans & u_dark & u_resp & u_stamp & u_theme & u_asave) 216 u_got = u_got + u4 217 lc_w(" [U4 "); lc_n(u4); lc_w("/2] product polish/feel -- card hover motion + transitions, persisted light/dark toggle (tokens +\n" as *u8) 218 lc_w(" localStorage), responsive shell, saved-vN stamp + TRUE AUTOSAVE (debounced, changed-only, ajax\n" as *u8) 219 lc_w(" OK-v<N> contract, versions tagged auto -- gate T13a-d), favicon. CAPPED 1/2: NO offline/PWA,\n" as *u8) 220 lc_w(" NO loading skeletons, NO a11y audit. Bar: polished web-app feel (Docs/OnlyOffice).\n" as *u8) 221 let u_max: i64 = 8 222 lc_w(" U-AXES SUBSCORE: "); lc_n(u_got); lc_w("/"); lc_n(u_max); lc_w(" (product/UI quality vs the named bar -- NOT format capability)\n") 223 224 // BLENDED coverage: each of the (present+exceeds+absent) format axes is worth 2 (binary 0|2); the 4 U-axes 225 // are 0..2 each. This folds true PRODUCT quality into the headline number so it can no longer read as SOTA. 226 let total: i64 = present + exceeds + absent 227 let base_pts: i64 = (exceeds + present) * 2 228 let coverage: i64 = (base_pts + u_got) * 1000 / (total * 2 + u_max) 229 lc_w(" TALLY: EXCEEDS="); lc_n(exceeds); lc_w(" PRESENT="); lc_n(present); lc_w(" ABSENT="); lc_n(absent); lc_w(" (of "); lc_n(total); lc_w(" feature axes) + U-axes "); lc_n(u_got); lc_w("/"); lc_n(u_max); lc_w(" BLENDED coverage="); lc_n(coverage); lc_w("/1000\n") 230 lc_w(" FINDING: NOT a state-of-the-art office suite. We are a SOVEREIGN FOUNDATION -- correct .docx/.xlsx/.odt interop,\n" as *u8) 231 lc_w(" mail-merge, never-lose versioned document management + generation -- with ONE genuine measured EXCEEDS\n" as *u8) 232 lc_w(" (tamper-evident content-addressed never-lose version history, which even LibreOffice lacks) and PARITY\n" as *u8) 233 lc_w(" with the open-source SOTA on privacy/open-format. The LEADERS' 2025/2026 differentiators are ALL ABSENT:\n" as *u8) 234 lc_w(" agentic in-app AI (Copilot Agent Mode / Gemini), rich-doc extras (images/track-changes/comments).\n" as *u8) 235 lc_w(" CLOSED SINCE 07-08: .docx FORMATTING+TABLES; FORMULAS (real <f> + Q4 evaluator; 5 fns vs SOTA 400+ --\n" as *u8) 236 lc_w(" a START); PRESENTATIONS v1 (.pptx title+bullet author/read/render); CHARTS + PIVOTS v1 (native render);\n" as *u8) 237 lc_w(" REAL-TIME CO-EDITING (RGA text CRDT + live multi-client HTTP sync -- kernel gate 7/7 + live gate 5/5,\n" as *u8) 238 lc_w(" two client processes CONVERGE over loopback; NO rich-text/cursors/presence UI yet); 07-10 the PRODUCT\n" as *u8) 239 lc_w(" SHELL (search/sort/chips/REAL thumbnails/empty-states/persisted dark/find/undo/shortcuts + version\n" as *u8) 240 lc_w(" DIFF -- nx_office_gate 34/34). Coverage is a CAPABILITY fraction, not a rank.\n" as *u8) 241 lc_w(" UI GRADE (SEPARATE instrument, per feedback-ui-quality-is-not-presence -- NOT folded into coverage):\n" as *u8) 242 lc_w(" nx_ui_judge 07-10 fleet-bar retrofit: /office home 341->888 permil, editor 376->888 permil\n" as *u8) 243 lc_w(" (DE/US/AX/CO all 1000; CR 634 = content-tier taste, no aurora); nx_ui_ship_gate REQUIRED 9/9\n" as *u8) 244 lc_w(" incl office AFTER rows (regression now BLOCKS). Snapshots: web_assets/office_*_{before,after}.html.\n" as *u8) 245 246 // ===== LIAR-KILL: the marquee gaps must be REAL + the one exceed proven + coverage honestly LOW + corpus grounded ===== 247 let liar_exceed: i64 = ((exceeds == 1) as i64) & x_ver 248 let liar_gaps: i64 = gap_ai1 & gap_ai4 // marquee gap STILL open: AGENTIC IN-APP AI (fmt+tbl+formulas+pptx+charts+ 249 // pivots CLOSED 07-08/09; REAL-TIME CO-EDIT CLOSED 07-09 = CRDT + live HTTP 250 // sync gate 5/5). The one remaining leader-differentiator we cannot fake. 251 let liar_present: i64 = e_docx & e_odt & e_xlsx & e_docmgmt & e_docgen 252 let liar_low: i64 = (coverage < 700) as i64 // honesty guard, tracks reality DATED: 500->600 (07-09 presentations) 253 // ->700 (07-09 real-time co-edit genuinely closed the biggest marquee 254 // gap). NOT-SOTA verdict stays enforced by the agentic-AI marquee row. 255 let liar_corpus: i64 = (corpus == 1) as i64 256 lc_w(" LIAR-KILL: exceed==1-proven="); lc_n(liar_exceed); lc_w(" marquee-gaps-real="); lc_n(liar_gaps); lc_w(" core-present-proven="); lc_n(liar_present); lc_w(" coverage-honestly-low(<700)="); lc_n(liar_low); lc_w(" corpus-grounded="); lc_n(liar_corpus); lc_w("\n") 257 258 let ok: i64 = liar_exceed & liar_gaps & liar_present & liar_low & liar_corpus 259 lc_w("NX-OFFICE-CENSUS coverage="); lc_n(coverage); lc_w("/1000 EXCEEDS="); lc_n(exceeds); lc_w(" ABSENT="); lc_n(absent); lc_w(" verdict=") 260 if ok == 1 { lc_w("MEASURED-HONEST (liar-killed) -- NOT SOTA: sovereign foundation w/ 1 real exceed (never-lose versioning); the 2025/2026 leaders' agentic in-app AI + images/track-changes are the named gaps (real-time co-edit now CLOSED: CRDT + live HTTP sync)\n" as *u8); sys_exit(0); return 0 } 261 lc_w("RED (a marquee gap was faked closed, the exceed unproven, coverage implausibly high, or corpus missing)\n" as *u8); sys_exit(1); return 1 262}