code wiki / _hdl_build / nx_atlas_discover.nx
nx_atlas_discover.nx
buildroot/runtime/_hdl_build/nx_atlas_discover.nx
about
nx_atlas_discover.nx -- ATLAS RECOMBINATION DISCOVERY (operator 2026-07-18: "novel design via
recombinations of the atlas especially as we do discovery work to find new unproven opportunities").
The eco graph sees STATIC import edges; plans compose tools at RUNTIME -- edges the graph cannot
see. This organ GENERATES candidate composition edges: it scans the commontask catalog for
MCP-live capabilities, EXCLUDES pairs already proven together in a plan plane, scores the novel
pairs (data-adjacency: both notes mention plane/store; cross-lane: different owners), and emits
the top proposals to the discovery- plane as rows a human or nx_plan_run can pick up and TRY.
nx_atlas_discover [catalog-prefix] [exclusion-plan-prefix] [out-prefix] [minscore]
defaults: knowledge/store/commontask- knowledge/store/plan-loopcheck- knowledge/store/discovery- 2
out row: DSC<n> <organA>-><organB> <score> proposed atlas <verbA>+<verbB> try: plan 10 <A> / 20 <B>
Fail-closed on unseeded catalog. Proposals are HYPOTHESES (status=proposed) -- promotion to the
catalog happens only after a plan run PROVES the combo (the honest exceed discipline).
license_tier: ORIGINAL No hw writes (Rule 26). expect_exit: 0
dependencies 3 imports · 0 importers
imports: nx_store_seed_lib.nxnx_seg_store.nxnx_syscalls.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
| 18 | const AD_CAP: i64 = 1048576 |
| 19 | const AD_NL: i64 = 10 |
| 20 | const AD_TAB: i64 = 9 |
| 21 | const AD_MAXCOL: i64 = 16 |
| 22 | const AD_PAIR: i64 = 2 |
| 23 | const AD_SPB: i64 = 256 |
| 24 | const AD_MAXORG: i64 = 48 |
| 25 | const AD_MAXOUT: i64 = 40 |
| 26 | const AD_MINSCORE_DEF: i64 = 2 |
| 30 | const AD_KIND_UNKNOWN: i64 = 0 |
| 31 | const AD_KIND_MAKER: i64 = 1 |
| 32 | const AD_KIND_RULER: i64 = 2 |
| 33 | const AD_W_DATA_ADJACENCY: i64 = 2 |
| 34 | const AD_W_CROSS_LANE: i64 = 1 |
| 35 | const AD_W_MEASURE_GAP: i64 = 3 |
| 36 | const AD_SRC_NONE: i64 = 0 |
| 37 | const AD_SRC_NAME: i64 = 1 |
| 38 | const AD_SRC_TASK: i64 = 2 |
| 39 | const AD_SRC_NOTE: i64 = 3 |
| 40 | const AD_SRC_DECLARED: i64 = 4 |
| 43 | const CT_KIND: i64 = 7 |
| 44 | const AD_STDERR: i64 = 2 |
| 45 | const AD_EXIT_IO: i64 = 1 |
| 46 | const AD_ZERO: i64 = 48 |
| 47 | const AD_NINE: i64 = 57 |
| 48 | const AD_B10: i64 = 10 |
| 50 | const CT_TASK: i64 = 0 |
| 51 | const CT_ORGAN: i64 = 1 |
| 52 | const CT_OWNER: i64 = 2 |
| 53 | const CT_EXPO: i64 = 3 |
| 54 | const CT_STATE: i64 = 4 |
| 55 | const CT_NOTE: i64 = 6 |
functions
| 57 | func ad_slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n } |
| 58 | func ad_werr(s: *u8) -> i64 { sys_write(AD_STDERR, s, ad_slen(s)); return 0 } |
| 59 | func ad_cols(q: *u8, ls: i64, le: i64, sp: *i64) -> i64 called by 1: main |
| 75 | func ad_has(q: *u8, a: i64, b: i64, s: *u8) -> i64 |
| 88 | func ad_slice_eq2(q: *u8, a: i64, b: i64, r: *u8, c: i64, d: i64) -> i64 called by 1: main |
| 94 | func ad_atoi(s: *u8) -> i64 called by 1: main |
| 100 | func ad_cat_slice(d: *u8, o: i64, q: *u8, a: i64, b: i64) -> i64 called by 1: main |
| 110 | func ad_kind_of(cat: *u8, s0: i64, s1: i64) -> i64 |
| 132 | func ad_streq(a: *u8, b: *u8) -> i64 called by 1: main |
| 140 | func ad_trusted(src: i64) -> i64 |
| 147 | func ad_kind_lit(s: *u8) -> i64 |
| 153 | func ad_kexp(s: *u8, want: i64, label: *u8) -> i64 |
| 162 | func ad_selftest() -> i64 |
| 199 | func main(argc: i64, argv: *i64) -> i64 |