New verb bee sym u8bFeed: every mention of a symbol across the registered tips, one prefix scan. A new lite record family: key SYM:4|sym_hl:40|types:20, val seg0..seg3:10|fn_hl:20|vnib:4, ONE ROW PER SYMBOL x FILE, verbatim hashing. The kind nibble sits in the key's TOP bits per DOG-047 (landed 2026-08-24), so EVERY kind owns a contiguous 1/16 range and the fat family never peppers a rev-lane page; no reserved all-ones kind is needed — SYM takes the next free value, 9. Suspects contract as LINK (LITE-033, INDEXES.mkd): a row says the symbol MAY be there, precision comes from opening the suspect, rows are never deleted.
index/hook.js:24:fTokens filters to F); the full token array is in hand, so SYM rows mint in that SAME pass — no second blob read, no second recognizer.sym_hl is uniform, so without the top-nibble kind the family "does not occupy one range" (gritzko, 2026-08-24); with it, it occupies exactly one.bee sym <ident>: one 9|sym_hl prefix scan, fanned read-only over the BEE-001 registry; suspects named to TEXT by a tip-tree descent PRUNED by the val's seg/basename hashlets (only dirs whose segment hashlet matches are entered — cheaper than lindex's full descent).9:4|sym_hl:40|types:20: sym_hl = top 40 bits of the symbol text's hashlet, VERBATIM (u8bFeed != U8BFeed, no despace/decase); types = four 5-bit tok32 tags the symbol lexed as in this file.types is CANONICAL or idempotence dies: slots sorted ascending, deduped, 0 spells absent ('A' is no tag in the alphabet), lowest four win when more were seen.seg0..seg3:10|fn_hl:20|vnib:4: FSEG-style ancestor segment hashlets root-first, 0 = absent, basename hashlet 20 bits — same field vocabulary as LINK/FSEG.hlOfText("symdex"): sharing lindex's mark would read a pre-SYM index as done.S, defined names N, calls C, …), comment PROSE words do not — u8bFeed always mints, the never does.rm -rf + rebuild, which the derived contract already licenses.sym_hl and 10-bit seg collisions are harmless: suspects only, the open confirms..lite2.idx -> .lite3.idx sweeps and lazily rebuilds every old file. The kv lane is untouched (its own file, its own catalogue).ctx, len) legitimately carry a row per file; the VERB caps: past ~N suspects per repo it prints the count and asks for a narrower query instead of descending every tree.revKey/hlKey/fsegKey (index/index.js:42:nR), the kind table, and loadPath (index/index.js:466:nR) turning one path span into one span per REV kind..lite3.idx