claude up some atproto stuff

add pub-search skill — search published writing across the atmosphere

indexes Leaflet, Whitewind, Pckt, Offprint, Greengale via keyword,
semantic, and hybrid search. bundled as hosted MCP server.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

+80
+4
.mcp.json
··· 7 7 "atproto": { 8 8 "command": "uvx", 9 9 "args": ["atproto-mcp"] 10 + }, 11 + "pub-search": { 12 + "type": "http", 13 + "url": "https://pub-search-by-zzstoatzz.fastmcp.app/mcp" 10 14 } 11 15 } 12 16 }
+3
README.md
··· 21 21 | `/protopack:spacedust` | real-time interaction streaming via WebSocket | 22 22 | `/protopack:slingshot` | fast record fetching and identity resolution | 23 23 | `/protopack:ufos` | lexicon timeseries statistics and ecosystem discovery | 24 + | `/protopack:pub-search` | search published writing across the atmosphere for prior art | 24 25 | `/protopack:app-patterns` | common patterns for building atproto apps | 25 26 26 27 ### bundled MCP servers ··· 29 30 |--------|-------------|----------------| 30 31 | [pdsx](https://github.com/zzstoatzz/pdsx) | AT Protocol record CRUD (list, get, create, update, delete) | `uvx` from PyPI | 31 32 | [atproto-mcp](https://github.com/ashex/atproto-mcp) | searchable atproto docs, lexicon schemas, cookbook examples | `uvx` from PyPI | 33 + | [pub-search](https://pub-search.waow.tech) | search published writing across atmosphere platforms | hosted HTTP | 32 34 33 35 ### microcosm services 34 36 ··· 52 54 - [microcosm.blue](https://microcosm.blue) — AT Protocol infrastructure by [@bad-example.com](https://bsky.app/profile/bad-example.com) 53 55 - [pdsx](https://github.com/zzstoatzz/pdsx) — AT Protocol record operations 54 56 - [atproto-mcp](https://github.com/ashex/atproto-mcp) — AT Protocol documentation search 57 + - [pub-search](https://pub-search.waow.tech) — atmosphere publishing search
+73
skills/pub-search/SKILL.md
··· 1 + --- 2 + name: pub-search 3 + description: Search published writing across AT Protocol platforms (Leaflet, Whitewind, Pckt, Offprint, Greengale). Use when researching prior art, finding tutorials, looking up how others have built things, or discovering announcements and writeups in the atmosphere. 4 + user-invocable: true 5 + --- 6 + 7 + # pub-search — search the atmosphere's published writing 8 + 9 + pub-search indexes all content published on AT Protocol publishing platforms. When people build things on atproto, they write about it — announcements, tutorials, deep dives, design docs. This is how you find prior art. 10 + 11 + **Indexed platforms:** Leaflet, Whitewind, Pckt, Offprint, Greengale, and other standard.site publishers. 12 + 13 + ## MCP tools 14 + 15 + pub-search is bundled as an MCP server with this plugin. The tools are available directly: 16 + 17 + | tool | what it does | 18 + |------|-------------| 19 + | `search` | keyword search with BM25 ranking + recency boost (~9ms) | 20 + | `search_semantic` | meaning-based vector search — finds related content even without keyword overlap (~350ms) | 21 + | `search_hybrid` | combines keyword + semantic via reciprocal rank fusion — best of both | 22 + | `get_document` | fetch the full text of a document by AT-URI | 23 + | `find_similar` | find semantically related documents to a given URI | 24 + | `get_tags` | list all tags with counts | 25 + | `get_stats` | index statistics and performance metrics | 26 + | `get_popular` | popular recent search queries | 27 + 28 + ## when to use which search mode 29 + 30 + - **keyword** (`search`): fast, good when you know the terms. "microcosm constellation API" 31 + - **semantic** (`search_semantic`): finds related content by meaning. "how to build real-time features on decentralized social" finds posts about Spacedust even if they don't use those exact words 32 + - **hybrid** (`search_hybrid`): when you want thoroughness. combines both, results annotated with source ("keyword", "semantic", or "keyword+semantic") 33 + 34 + ## filters 35 + 36 + - `platform`: filter to a specific platform ("leaflet", "whitewind", "pckt", "offprint", "greengale") 37 + - `tag`: filter by tag (keyword search only) 38 + - `since`: ISO date string for recency filtering (keyword search only) 39 + - `limit`: max results (default varies by tool) 40 + 41 + ## research workflow 42 + 43 + When building something on atproto, search for prior art first: 44 + 45 + 1. **search for the concept**: `search_hybrid("backlink index atproto")` — find writeups about similar features 46 + 2. **read the full posts**: `get_document(uri)` on the most relevant results 47 + 3. **explore related content**: `find_similar(uri)` to discover adjacent ideas 48 + 4. **check tags**: `get_tags()` to see what topics are well-covered 49 + 50 + ## examples 51 + 52 + Find posts about building with Microcosm: 53 + ``` 54 + search_hybrid("microcosm constellation building apps") 55 + ``` 56 + 57 + Find tutorials about AT Protocol identity: 58 + ``` 59 + search_semantic("how identity resolution works in atproto") 60 + ``` 61 + 62 + Find recent Leaflet posts about a topic: 63 + ``` 64 + search("oauth atproto", platform="leaflet", since="2025-01-01") 65 + ``` 66 + 67 + ## tips 68 + 69 + - semantic search is slower but finds things keyword search misses — use it when exploring a concept 70 + - hybrid search is the best default for research — it catches both exact matches and related content 71 + - use `get_document` to read full articles, not just snippets 72 + - `find_similar` is great for expanding your search once you find one good result 73 + - results include a `url` field — useful for linking to sources