Vol. 03 · Field Guideswallowtail · docsupdated 2026 · 05 · 12
No. 14c · Docs

Matcher passes.

Three passes, deterministic, no surprises. Each row carries its reasoning.

Pass 1 · Exact

If the old slug exists verbatim on the new site, accept it at confidence 1.00. Roughly 60% of a typical run resolves in this pass.

Pass 2 · Fuzzy

Levenshtein on the slug, semantic cosine on the title. Confidence is a weighted blend. Anything below the fuzzy threshold (default 0.72) does not match in this pass and falls through to wildcard.

Why the title cosine matters

Slug-only matching breaks on rebrands (/our-team-page to /about/team). Pulling the title vector lets us catch human-readable continuity even when the URL shape diverges.

Pass 3 · Wildcards

The matcher looks for path patterns: date archives (/blog/2014/*), product slugs (/products/*), paginated trees. When at least N URLs share a stem (default 12) and they all fuzzy-match into the same target stem, they collapse into a single regex line.

/blog/2014/* → /journal/$1   (612 URLs) /old-blog/2019/* → /resources/* (84 URLs)

Confidence bands

BandRangeRecommended action
High≥ 0.85Auto-accept
Mid0.6 to 0.85Spot-check 10%
Low< 0.6Review every row
WildcardanyVerify children before export

Reasoning panel

Click any row in the super-table. The drawer shows which pass produced the match, every signal that fired, weights, runner-ups, and any human override. The matcher never silently maps; the case is always visible.