| name | ask |
|---|---|
| description | Ask the second brain in plain words — semantic search over the curated knowledge vault (embeddings + reranker), not a full-corpus dump. Trigger on "/ask <question>", "what do I have on <topic>", "what did I write about X". Token-cheap: RAG retrieves the smallest relevant slice, the LLM only synthesizes the top hits. |
| license | MIT |
🧒 When reporting to a non-technical operator: end with a child-simple "In plain words" recap in their language.
Deterministic-first (the operator's token law): RAG retrieves the smallest relevant slice; synthesize ONLY that — never dump the corpus.
Wrong lane? /ask = semantic MEANING over the curated vault. For exact WORDS inside chats → /search; an exact PERSON name → /find; a CHAT by name → /chat (all 0 tokens, deterministic). Use those when the question isn't conceptual.
For interactive eyes-on search: python "$IMPORTS_ROOT/ask_server.py" (or start_ask.bat) → open http://127.0.0.1:8770. It loads e5 + reranker ONCE, after which each query takes ~3s. A search box + filter chips (my writing only / concepts / insights / leads / people / conversations / notes), cards with the rerank score, type, date and a ⏳ staleness flag. CPU by default (does not fight the GPU fleet, holds 0 VRAM); --gpu when the GPU is free. This is the GUI for the operator; --ask below is for me synthesizing an answer in chat.
python "$IMPORTS_ROOT/brain_ask.py" "<question>"
Scope with filters (cheaper + sharper):
--anton(only the owner's own writing) ·--concepts(distilled "what I think about X") ·--insights--person <name>·--conv(conversations) ·--leads(CRM) Returns top-K chunks (chunked + tagged + edit-aware index); may flag⚠ STALEon volatile facts >90d.
- Synthesize the returned hits into a DIRECT answer; cite the note titles so the operator can open them.
- If a hit is
⚠ STALE, say so and offer to re-verify (per the epistemic-decay layer). - If retrieval is thin/irrelevant → say so, suggest a sharper query or a filter; do NOT pad with guesses.
- Keep it tight; end with 🧒 recap.
The index is kept fresh by the reindex routine. If results feel stale right after a big import, mention a reindex may be due (brain_embed_update.py) — but don't reindex unprompted.
Built and battle-tested at Palo Alto AI Research Lab — a fleet of Claude Code machines running 24/7 as a second brain and synthetic cofounder. Every skill here survived real production use before publication.
- 📦 All 101 skills: https://github.com/tonydzi/second-brain-starter-kit
- 👤 Author: Anton Dziatkovskii — Telegram @tonydzi · WhatsApp +1 341 222 9178 · X @Tony_Stef_
- 🧪 Engineers: want to test-drive this setup? Message me — I hand out free starter seeds to engineers who test and report back. Custom skill requests welcome.