| j / k | Next / previous near-dup cluster |
| g / G | First / last cluster (Events or Properties tab) |
| n / N | Next / previous undecided near-dup |
| a / s | Accept · Keep separate — focused cluster, or selected when multi-select is active |
| Batch | Multi-select batch decide — Space toggle · Shift+click / Shift+j/k range · a/s on selection · Esc clear (batch bar mirrors) |
| u / r | Undo · Redo last decision |
| f | Toggle Focus mode — hide Advanced / map library, enlarge clusters (saved in this browser) |
| / | Focus cluster search (name · alias · canonical); pack preview open → pack search (Clear keeps focus; Esc clears query, empty Esc closes pack); merge-pick panel focused → Find raw |
| ⌘/Ctrl+K | Command palette — jump / theme / density / focus / sound / Pack diff / Month-N / Jump first undecided / Jump first new / Jump first drifted / Set dialect / Export CSV map / Share Month-N trend / Focus map merge / Apply merge picks / Copy unresolved event merge raws / Download unresolved event merge raws / Copy unresolved property merge raws / Download unresolved property merge raws / export |
| Space | Toggle select on focused near-dup cluster |
| Shift+click / Shift+j/k | Range-select clusters (Shift+click or Shift+j/k) |
| 1 / 2 / 3 | Jump pack-compare sections (new / gone / remapped) when Compare packs is open |
| Esc | Order: palette → help → pack preview (search focused: Esc clears query first; empty Esc closes pack) → merge pick panel (if open/focused: clear pick focus) → else clear multi-select · close pack compare · Properties → Events |
| Theme | Choose Light, Dark, or System — header control, or ⌘/Ctrl+K → Theme (saved in this browser) |
| Density | Toggle compact / comfortable — header badge, or ⌘/Ctrl+K → Density (saved in this browser) |
| Sound | Optional tiny beep on Accept / Keep separate — header badge, or ⌘/Ctrl+K → Sound (off by default · saved · respects reduced motion / data) |
| ⌘K → Pack diff | Open Pack diff / Compare packs — palette only (⌘/Ctrl+K → Pack diff). 1/2/3 jump sections when the panel is open |
| ⌘K → Month-N | Open Month-N pack timeline — palette only (⌘/Ctrl+K → Month-N) |
| ⌘K → Jump first undecided | Jump to first undecided near-dup — palette only (⌘/Ctrl+K → Jump first undecided); same as progress-bar click |
| Click progress | Click decide progress / decided count — jump to first undecided near-dup (same as ⌘/Ctrl+K → Jump first undecided); button when undecided remain |
| ⌘K → Jump first drifted | Jump to first drifted name — palette or sticky drift count when vs last pack shows drift > 0 (same silent-drift K as ritual banner) |
| Click drift count | Click sticky ritual drift count — jump to first drifted cluster/row (same as ⌘/Ctrl+K → Jump first drifted); not clickable when drift is 0 |
| ⌘K → Jump first new | Jump to first new name — palette or sticky new count when vs last pack shows new > 0 (same ritual N / volume-sorted newItems as ritual banner) |
| Click new count | Click sticky ritual new count — jump to first new cluster/row (same as ⌘/Ctrl+K → Jump first new); not clickable when new is 0 |
| ⌘K → Set dialect | Focus Event name column to set dialect override — palette only (⌘/Ctrl+K → Set dialect) |
| ⌘K → Share Month-N trend | Share Month-N trend markdown — palette only (⌘/Ctrl+K → Share Month-N trend); clipboard + optional Web Share |
| ⌘K → Export CSV map | Export CSV map (kind,raw,canonical,decision,note) — pack pane / sticky pack-preview toolbar, or ⌘/Ctrl+K → Export CSV map |
| Sticky pack | Pack preview sticky toolbar — Export pack · CSV map · search · Close stay pinned while scrolling (when preview is open) |
| Sticky compare | Pack compare / Month-N sticky toolbar — Share · Close stay pinned while scrolling (when panel is open) |
| Manual pick | Manual pick (On conflict → Manual pick) — after Merge, choose Map A or Map B per conflict; Export/Save stay gated until Apply picks |
| a / b | a / b (or Use A / Use B) — pick Map A or Map B for the focused conflict row when focus is in the merge pick panel; ignored while typing or when palette / help / pack preview is open |
| j / k | j / k — next / previous conflict row when focus is in the merge pick panel; wraps at ends (same as decide); ignored while typing or when palette / help / pack preview is open |
| Home / End | Home / End — first / last conflict row when focus is in the merge pick panel; ignored while typing or when palette / help / pack preview is open |
| Enter | Enter — Apply picks & save map when focus is in the merge pick panel and every conflict is picked (same as sticky Apply); no-op while unresolved remain; ignored while typing or when palette / help / pack preview is open |
| c | c — copy the focused conflict row's raw name to the clipboard when focus is in the merge pick panel; announces Copied raw name; ignored while typing or when palette / help / pack preview is open |
| x | x — clear the focused conflict row's A/B pick back to unresolved when focus is in the merge pick panel; no-op if already unresolved; ignored while typing or when palette / help / pack preview is open |
| n / N | n / N — next / previous unresolved conflict row when focus is in the merge pick panel; walks the visible list (respects Unresolved only); skips A/B-picked rows; wraps at ends; no-op if none unresolved; does not replace j/k; ignored while typing or when palette / help / pack preview is open |
| Remaining chip | Remaining chip — sticky count of unresolved merge conflicts (full set; not Find-filtered). When both events and properties remain, shows e.g. 3 events · 2 properties remaining with independently clickable kind counts (events → set kind filter + jump to first unresolved event; properties → set kind filter + jump to first unresolved property); clicking remaining / padding keeps the overall jump (active kind filter if on, else events then properties) and does not clear the kind filter. Sticky All kinds (or Shift+f) clears the kind filter when active. When only one kind remains, short form (whole chip one click). All picked when none remain. |
| f / Unresolved only | f / Unresolved only — toggle the sticky filter to show unresolved conflict rows only (or Show all); remaining chip still counts all unresolved; ignored while typing or when palette / help / pack preview is open |
| Shift+f / All kinds | Shift+f / All kinds — clear the sticky kind filter back to all kinds when the merge pick panel is focused; sticky All kinds appears beside Unresolved only when a kind filter is active (hidden otherwise); re-renders full list (still AND with Unresolved-only + Find) and focuses first visible unresolved (or first row); ignored while typing or when palette / help / pack preview is open |
| / Find raw | / Find raw — focus the sticky find field when the merge pick panel is focused; filters visible conflicts by raw name (and Map A/B canonical); composes with Unresolved only; remaining chip stays full unresolved set; Esc clears query then blurs to a row; sticky × Clear clears query and keeps focus in Find; Alt+/ clears Find and returns focus to a visible row; typing stays normal in the field; ignored when palette / help / pack preview is open |
| Alt+/ · Clear | Alt+/ — clear Find raw when the merge pick panel is focused and return focus to the previous or first visible conflict row; sticky × Clear on the find field clears query and keeps focus in Find; prefers Alt+/ over Ctrl+/ so browser find stays free; ignored when palette / help / pack preview is open |
| More … | More … — sticky disclosure; holds Copy unresolved events + Download unresolved events + Copy unresolved properties + Download unresolved properties so Apply / Use A/B / remaining / Unresolved only / Find stay visible; each disables when that kind's remaining is 0; Esc closes menu first |
| Copy unresolved events | Copy unresolved events — copies every unresolved event conflict's raw name to the clipboard as newline-separated text (full unresolved event set; not Find-filtered); sticky More … menu or ⌘/Ctrl+K → Copy unresolved event merge raws; no dedicated keybind (Shift+c kept for single-row c/C) |
| Download unresolved events | Download unresolved events — saves every unresolved event conflict's raw name as a newline-separated .txt file (full unresolved event set; not Find-filtered); sticky More … menu or ⌘/Ctrl+K → Download unresolved event merge raws; filename taxon-merge-unresolved-events-…txt; no dedicated Shift hotkey required |
| Copy unresolved properties | Copy unresolved properties — copies every unresolved property conflict's raw name to the clipboard as newline-separated text (full unresolved property set; not Find-filtered); sticky More … menu or ⌘/Ctrl+K → Copy unresolved property merge raws |
| Download unresolved properties | Download unresolved properties — saves every unresolved property conflict's raw name as a newline-separated .txt file (full unresolved property set; not Find-filtered); sticky More … menu or ⌘/Ctrl+K → Download unresolved property merge raws; filename taxon-merge-unresolved-properties-…txt |
| Bulk remaining | Use A/B for remaining — bulk-fill every unresolved conflict in the full set (not just the Unresolved-only visible list) |
| Apply picks | Apply picks & save map — writes A/B picks into the merged map and saves locally; palette → Apply merge picks; Enter when all picked (focus in panel) |
| ⌘K → Focus map merge | Focus map merge — palette only (⌘/Ctrl+K → Focus map merge); opens Named maps and jumps to the merge panel |
| e / p | Export pack · Preview pack |
| w | Toggle Why? on focused multi-member cluster (? stays help) |
| ? | Toggle this cheat sheet |