What problem does it solve?
It answers which Nostr event kinds are full-text searchable in Quartz, exactly what text each kind's indexableContent() contributes, and how the SQLite and filesystem stores consume that text, so changes to search indexing never ship silently.
Core Features & Use Cases
- Authoritative kind table: A references file lists every SearchableEvent implementor with its kind number, class, and exact indexableContent() expression (130 classes covering 133 kind values).
- Maintenance contract: Mandates updating the table in the same PR as any indexing change, registering new implementors in EventFactory, and scheduling reindexFullTextSearch() since existing databases do not reindex themselves.
- NIP-50 client grammar: Documents the SearchQuery extension syntax (include:spam, domain:, language:) and SearchRelayListEvent (kind 10007).
- Use Case: When bumping Quartz, diff references/searchable-kinds.md to tell external search engines whether the searchable set or any kind's indexed text changed.
Quick Start
Ask the AI to check whether a given Nostr event kind is searchable and what text it indexes using the searchable-events skill.