Robots.txt wildcard/path fixture — October 26, 2026

Node 22 or later. No packages, network, accounts or local server required.
Extract the ZIP and run: node run.mjs
Expected: 18/18 fixture decisions match. A mismatch exits with code 1.
The script reads its adjacent files even when invoked from another directory.
To check failure handling, change one permitted value in a temporary cases.csv.

Files: robots.txt (example policy), cases.csv (independent expected decisions),
run.mjs (readable finite-fixture comparator), README.txt (this file).
The CSV deliberately has no quoted commas or multiline fields.

This is an authored educational fixture, not the site's deployed policy and
not a certified full RFC 9309 implementation. Exact named groups, combined
exact groups, fallback *, prefix/wildcard/$ matching, case, query and selected
percent-encoding cases are covered. HTTP/cache behavior, partial user-agent
matching, malformed-file recovery and crawler identity are outside its scope.
Passing these cases is not proof that a production crawler supports all REP
semantics. Run these cases against your actual production parser too.

The accepted October 23 two-group/eight-case fixture remains available at:
https://sulayman-bowles.dev/research/robots-rule-matching-2026-10-23.txt
https://sulayman-bowles.dev/research/robots-rule-matching-2026-10-23.csv

Guide: https://sulayman-bowles.dev/research/ai-crawlers/robots-wildcards-path-matching
Primary references:
https://www.rfc-editor.org/rfc/rfc9309.html#section-2.2.2
https://developers.google.com/crawling/docs/robots-txt/robots-txt-spec
https://github.com/google/robotstxt
