{
 "schema_version": "1.0",
 "page_kind": "article",
 "pack_kind": "generate",
 "slug": "how-the-search-works",
 "title": "How the search works",
 "dek": "This hub now has a search page that lists the articles holding your words as you type, each with a line saying which words matched and where, and ranks them in your browser from one index file, with no request carrying what you type: how to use it, how it works, what it cannot do and how we checked it.",
 "published": "2026-10-15",
 "series": [
  "guide"
 ],
 "licence": "CC BY 4.0",
 "status": "pending-judge",
 "pack_note": "no judge is seated, so every chip is held",
 "notice": "items with published:false are held and are not this page's published words",
 "source": {
  "url": "https://research.strata2signal.com/how-the-search-works/",
  "md_url": "https://research.strata2signal.com/how-the-search-works/index.md",
  "md_sha": "de825102b8e5eb5e1eb7efaa52c84f169c4ce865fd21ad5da8084cac3b32ca9b",
  "html_sha": "36d921fa0069407094c4168f65f26a1913df41a47ef405cbed2222da9c45bef6",
  "anchors_sha": "15228c144271c3f965f9832fd7e6d7b4e025c315f268b14d96d5210565e155a4"
 },
 "short": {
  "paragraph": "The search page lists every article on this hub, newest first, and narrows the list as you type. Your browser fetches one index file and ranks the articles itself: higher when your words appear often, are rare across the site, or sit in a title. When you press Enter, open a result or ask for a link, your words go after the # in the address, which browsers leave out when they ask a server for a page; the search sets no cookie, saves nothing in your browser's storage and fetches nothing from any other host. Your browser's own history can keep that address, and a browser that translates the page can send its text, your words included, to its translation service. It matches words, not meaning, and does not guess at misspellings; a browser too old for it gets the full list and no box. A frozen set of 24 reference queries is run on every change to the ranking.",
  "from_dek": false,
  "counts": {
   "words": 1992,
   "minutes": 9,
   "tables": 0,
   "kit": false
  },
  "bullets": []
 },
 "sections": [
  {
   "id": "what-it-is",
   "heading": "1 · What it is, and where to find it",
   "level": 2,
   "span": [
    3181,
    4033
   ],
   "chunks": [
    [
     3181,
     4033
    ]
   ],
   "chars": 852,
   "digest": null,
   "digest_skipped": null
  },
  {
   "id": "how-to-use-it",
   "heading": "2 · How to use it",
   "level": 2,
   "span": [
    4033,
    5726
   ],
   "chunks": [
    [
     4033,
     5726
    ]
   ],
   "chars": 1693,
   "digest": null,
   "digest_skipped": null
  },
  {
   "id": "how-it-works",
   "heading": "3 · How it works",
   "level": 2,
   "span": [
    5726,
    9927
   ],
   "chunks": [
    [
     5726,
     9927
    ]
   ],
   "chars": 4201,
   "digest": null,
   "digest_skipped": null
  },
  {
   "id": "what-it-cannot-do",
   "heading": "4 · What it cannot do",
   "level": 2,
   "span": [
    9927,
    11124
   ],
   "chunks": [
    [
     9927,
     11124
    ]
   ],
   "chars": 1197,
   "digest": null,
   "digest_skipped": null
  },
  {
   "id": "how-we-checked-it",
   "heading": "5 · How we checked it",
   "level": 2,
   "span": [
    11124,
    11926
   ],
   "chunks": [
    [
     11124,
     11926
    ]
   ],
   "chars": 802,
   "digest": null,
   "digest_skipped": null
  },
  {
   "id": "how-to-check-our-work",
   "heading": "How to check our work",
   "level": 2,
   "span": [
    11926,
    12416
   ],
   "chunks": [
    [
     11926,
     12416
    ]
   ],
   "chars": 490,
   "digest": null,
   "digest_skipped": "credits"
  },
  {
   "id": "the-rest-of-the-seminar",
   "heading": "The rest of the seminar",
   "level": 2,
   "span": [
    12416,
    12758
   ],
   "chunks": [
    [
     12416,
     12758
    ]
   ],
   "chars": 342,
   "digest": null,
   "digest_skipped": "credits"
  },
  {
   "id": "who-ran-this-and-thanks",
   "heading": "Who ran this, and thanks",
   "level": 2,
   "span": [
    12758,
    13221
   ],
   "chunks": [
    [
     12758,
     13221
    ]
   ],
   "chars": 463,
   "digest": null,
   "digest_skipped": "credits"
  }
 ],
 "chips": [
  {
   "id": "c-27315a61",
   "q": "how does the search handle word variations?",
   "a": "The system folds spellings like licence and license into one, and handles plurals or certain endings like -ing and -ed, though words containing digits are never folded.",
   "cites": [
    "how-it-works"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  },
  {
   "id": "c-a6168480",
   "q": "what happens to search terms during a request?",
   "a": "Words stay in the search box while typing and move to the address after #q= upon pressing Enter. Because browsers omit everything after a # when requesting a page, the server does not see the specific search terms.",
   "cites": [
    "how-it-works"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  },
  {
   "id": "c-be4f1206",
   "q": "what limitations exist regarding search accuracy?",
   "a": "The search matches words rather than meaning and does not offer suggestions or guesses for misspelled terms; it simply reports if no matches are found.",
   "cites": [
    "what-it-cannot-do"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  },
  {
   "id": "c-b2c10053",
   "q": "how are search results ranked?",
   "a": "Articles are scored using the BM25 formula, which weights words based on their frequency in the article and their rarity across the site, giving higher priority to matches in titles and headings.",
   "cites": [
    "how-it-works"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  },
  {
   "id": "c-4b701a1e",
   "q": "how is the ranking quality maintained?",
   "a": "A gate of 24 specific queries is run against a frozen index whenever the ranking code changes to ensure results remain consistent with established expectations.",
   "cites": [
    "how-we-checked-it"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  }
 ],
 "related": [],
 "thanks": "## Who ran this, and thanks {#who-ran-this-and-thanks}\n\nThe ranking code, the tokenizer and the index builder are the workshop's own, built on no library. The checks behind them stood on Chromium (run headless), Node.js and Python's standard library, none of which owed us anything. A small (human) team decided what the search would and would not do; a fleet of AI agents wrote the scripts, ran the tests, audited them, and read these pages as a stranger would.",
 "kit": null,
 "seat_class": {
  "writer": "gemma-class",
  "judge": null,
  "writer_runtime": "vllm"
 },
 "bench": {
  "bullets_written": 3,
  "bullets_kept": 0,
  "digests_written": 5,
  "digests_kept": 0,
  "chips_written": 7,
  "chips_kept": 5,
  "chips_grounded": 0,
  "chips_published": 0,
  "dropped_by": {
   "new_noun": 0,
   "figure": 0,
   "length": 0,
   "cite": 0,
   "judge": 0,
   "quote": 0,
   "directive": 0,
   "redaction": 0,
   "profanity": 0,
   "identifier": 0,
   "bare_figure": 1,
   "house_voice": 0,
   "editorial": 0,
   "hand-edit": 9
  },
  "new_noun_tokens_checked": [
   "0.3",
   "2026-10-15",
   "24",
   "3090",
   "5900",
   "82",
   "BM25",
   "Enter",
   "JavaScript",
   "MB",
   "Q4KM"
  ],
  "new_noun_tokens_withheld": 0,
  "figure_definition": "v3",
  "figure_boundary": "guarded",
  "drops": [
   {
    "kind": "bullet",
    "reason": "bare_figure",
    "item": "the ranking gate uses 24",
    "detail": "the cited section writes this figure as '24 queries' and the bullet prints '24' alone"
   },
   {
    "kind": "bullet",
    "reason": "hand-edit",
    "item": null,
    "item_chars": 30,
    "text_sha": "5db57102a967",
    "figure": "0.3",
    "withheld": "one bullet removed from this pack by hand",
    "removed_utc": "2026-10-15",
    "why": "hand-read: the figure, its condition and its cite are right, but the line labels its figure only as 'this size' with 0.3 MB glued on after it, which the page prints as a broken sentence; the section's own words are 'about 0.3 MB compressed'",
    "detail": "Carried forward by --carry-hand-edits on 2026-10-16: the writer produced this line again and the pack on disk records it removed by hand on 2026-10-15 (matched on its line key). The earlier record reads: removed from this pack by hand on 2026-10-15 (UTC), after the writer ran and after the gates had counted: hand-read: the figure, its condition and its cite are right, but the line labels its figure only as 'this size' with 0.3 MB glued on after it, which the page prints as a broken sentence; the section's own words are 'about 0.3 MB compressed'. Not a gate drop, and recorded here so the ledger ad…"
   },
   {
    "kind": "digest",
    "reason": "hand-edit",
    "item": null,
    "item_chars": 301,
    "text_sha": "4f40f92cc398",
    "section": "what-it-is",
    "withheld": "one section digest removed from this pack by hand",
    "removed_utc": "2026-10-15",
    "why": "hand-read: it drops the condition its count was read under; the section gives 82 articles when the search went live on 2026-10-15, and the digest says 82 as of that date, which this page's own arrival the same day made 83",
    "detail": "Carried forward by --carry-hand-edits on 2026-10-16: the writer produced this line again and the pack on disk records it removed by hand on 2026-10-15 (matched on its section). The earlier record reads: removed from this pack by hand on 2026-10-15 (UTC), after the writer ran and after the gates had counted: hand-read: it drops the condition its count was read under; the section gives 82 articles when the search went live on 2026-10-15, and the digest says 82 as of that date, which this page's own arrival the same day made 83. Not a gate drop, and recorded here so the ledger adds up."
   },
   {
    "kind": "digest",
    "reason": "hand-edit",
    "item": null,
    "item_chars": 271,
    "text_sha": "d43d69c39b73",
    "section": "how-we-checked-it",
    "withheld": "one section digest removed from this pack by hand",
    "removed_utc": "2026-10-15",
    "why": "hand-read: wrong as written; it says the 24 queries are a sealed set written by someone who never saw the ranker, where the section says they were chosen with the index in view and that a sealed set waits for a later version",
    "detail": "Carried forward by --carry-hand-edits on 2026-10-16: the writer produced this line again and the pack on disk records it removed by hand on 2026-10-15 (matched on its section). The earlier record reads: removed from this pack by hand on 2026-10-15 (UTC), after the writer ran and after the gates had counted: hand-read: wrong as written; it says the 24 queries are a sealed set written by someone who never saw the ranker, where the section says they were chosen with the index in view and that a sealed set waits for a later version. Not a gate drop, and recorded here so the ledger adds up."
   },
   {
    "kind": "digest",
    "reason": "hand-edit",
    "item": null,
    "item_chars": 307,
    "text_sha": "e1f1ddf12270",
    "section": "how-to-use-it",
    "withheld": "one section digest removed from this pack by hand",
    "removed_utc": "2026-10-16",
    "why": "wrong as written: it says the search does not guess at mistyped addresses, where the section's slip is a query with two digits swapped (5900), and a mistyped address is the first section's not-found page, whose box opens this search with the words typed into it",
    "detail": "Carried forward by --carry-hand-edits on 2026-10-16: the writer produced this line again and the pack on disk records it removed by hand on 2026-10-16 (matched on its section). The earlier record reads: removed from this pack by hand on 2026-10-16 (UTC), after the writer ran and after the gates had counted: wrong as written: it says the search does not guess at mistyped addresses, where the section's slip is a query with two digits swapped (5900), and a mistyped address is the first section's not-found page, whose box opens this search with the words typed into it. Not a gate drop, and recorded …"
   },
   {
    "kind": "digest",
    "reason": "hand-edit",
    "item": null,
    "item_chars": 283,
    "text_sha": "760d1d8902b2",
    "section": "what-it-cannot-do",
    "withheld": "one section digest removed from this pack by hand",
    "removed_utc": "2026-10-16",
    "why": "narrows the condition: the section says a browser older than the script's patterns, or one that lacks what the page checks for, shows no box and keeps the message and the full list whether or not it runs JavaScript, where the digest gives that to older browsers without JavaScript",
    "detail": "Carried forward by --carry-hand-edits on 2026-10-16: the writer produced this line again and the pack on disk records it removed by hand on 2026-10-16 (matched on its section). The earlier record reads: removed from this pack by hand on 2026-10-16 (UTC), after the writer ran and after the gates had counted: narrows the condition: the section says a browser older than the script's patterns, or one that lacks what the page checks for, shows no box and keeps the message and the full list whether or not it runs JavaScript, where the digest gives that to older browsers without JavaScript. Not a gate …"
   },
   {
    "kind": "chip",
    "reason": "hand-edit",
    "item": null,
    "item_chars": 218,
    "text_sha": "582e998f5302",
    "chip_id": "c-84d7cc64",
    "withheld": "one chip removed from this pack by hand",
    "removed_utc": "2026-10-16",
    "why": "its cite does not hold the claim: a why line under each result naming where each word matched is the first section's sentence, and the section it cites holds only one example why line",
    "detail": "Carried forward by --carry-hand-edits on 2026-10-16: the writer produced this line again and the pack on disk records it removed by hand on 2026-10-16 (matched on its question). The earlier record reads: removed from this pack by hand on 2026-10-16 (UTC), after the writer ran and after the gates had counted: its cite does not hold the claim: a why line under each result naming where each word matched is the first section's sentence, and the section it cites holds only one example why line. Not a gate drop, and recorded here so the ledger adds up."
   },
   {
    "kind": "bullet",
    "reason": "hand-edit",
    "item": null,
    "item_chars": 28,
    "text_sha": "4c1078a58dbe",
    "figure": "82",
    "withheld": "one bullet removed from this pack by hand",
    "removed_utc": "2026-10-16",
    "why": "hand-read: a bare figure; the section's 82 counts the articles the list held when the search went live on 2026-10-15, and the line never says 82 of what",
    "detail": "removed from this pack by hand on 2026-10-16 (UTC), after the writer ran and after the gates had counted: hand-read: a bare figure; the section's 82 counts the articles the list held when the search went live on 2026-10-15, and the line never says 82 of what. Not a gate drop, and recorded here so the ledger adds up."
   },
   {
    "kind": "digest",
    "reason": "hand-edit",
    "item": null,
    "item_chars": 293,
    "text_sha": "737ba8e6800d",
    "section": "how-it-works",
    "withheld": "one section digest removed from this pack by hand",
    "removed_utc": "2026-10-16",
    "why": "widens the claim: the section says this site sees only that the search page was opened and the index fetched, and says the browser's own history, its sync and its translation can still carry the words; the digest calls the search private outright, and says the header prevents a referrer where the page says it tells browsers to send none",
    "detail": "removed from this pack by hand on 2026-10-16 (UTC), after the writer ran and after the gates had counted: widens the claim: the section says this site sees only that the search page was opened and the index fetched, and says the browser's own history, its sync and its translation can still carry the words; the digest calls the search private outright, and says the header prevents a referrer where the page says it tells browsers to send none. Not a gate drop, and recorded here so the ledger adds up."
   },
   {
    "kind": "chip",
    "reason": "hand-edit",
    "item": null,
    "item_chars": 172,
    "text_sha": "c228d4ebdbef",
    "chip_id": "c-b205f8a8",
    "withheld": "one chip removed from this pack by hand",
    "removed_utc": "2026-10-16",
    "why": "repeats the fault the 2026-10-15 record dropped from the what-it-is digest: 82 is the count when the search went live on 2026-10-15, and the chip says the list holds 82 now, where this page's own arrival made 83 and the list has grown since",
    "detail": "removed from this pack by hand on 2026-10-16 (UTC), after the writer ran and after the gates had counted: repeats the fault the 2026-10-15 record dropped from the what-it-is digest: 82 is the count when the search went live on 2026-10-15, and the chip says the list holds 82 now, where this page's own arrival made 83 and the list has grown since. Not a gate drop, and recorded here so the ledger adds up."
   }
  ]
 },
 "generated_utc": "2026-10-16T16:03:28Z"
}
