ask · git:20260814.76c95ec · 2026-08-14 · sha256 dd381ee70209c826
ask git:20260814.76c95ecB
Immutable. This exact content is served forever at /api/v1/blob/dd381ee70209c826.
--- 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 --- # /ask — query the Second Brain > 🧒 **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. ## 🖥️ Visual search (a live server — the operator works visually) 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. ## Run (CLI — for 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 `⚠ STALE` on volatile facts >90d. ## Answer - 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. ## Note 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. --- <!-- CONTACT-FOOTER --> ## About & contact 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](https://t.me/tonydzi) · WhatsApp [+1 341 222 9178](https://wa.me/13412229178) · X [@Tony_Stef_](https://x.com/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.