# Superintelligence Council (Совет гения) — guide for agents

Site: https://sim.im. A base of the verbatim texts of 7 people: Anton Gladkov / Антон Гладков (anton), Alexander Gorny / Александр Горный (gorny), Nikolay Kartozia / Николай Картозия (kartoz), Gary Halbert (halbert), DHH / David Heinemeier Hansson (dhh), Jason Fried (fried), Yandex Direct chats / Чаты про Яндекс Директ (direct). Every passage has a date, a topic and a link to the original. Quotes stay in their original language (Russian or English).

## Rules
1. Quote verbatim and with a link (`url` or `passage_id`). Paraphrase is not valued here — the author's exact wording is.
2. An `/api/ask` answer is already checked: every quote is a substring of the original; everything else was dropped by the server (`dropped`).
3. Read little: `search`/`ask` first, then `passage` with context; the whole document only when needed.
4. A person's own new text (a post, a letter) goes through `ingest` — it appears after the owner approves it.
5. Before writing "as X said …" — run `verify`: verbatim or not, the right author, what was changed. Free, no model.
6. Need several viewpoints — `council`: every person answers one question with their own quotes; whoever has nothing to say stays silent.

## Access
`Authorization: Bearer <key>`. Scopes: read (search, ask, dossier), write (+ ingest), full (+ admin). Keys are issued by the owner (`node bin/keys.js create` or /admin).

## Routes
- GET  /api/overview — what is in the base; start here
- GET  /api/geniuses — the people
- GET  /api/genius/:slug — dossier: topics, years, tags, latest
- GET  /api/search?q=&genius=&theme=&kind=&from=&to=&tag=&limit=&offset=&names= — passages with snippets; matches in `snippet` are between ⟪ and ⟫. Without q but with a filter (genius/theme/tag/kind/from/to) — a feed by date, newest first. A person's name inside q («Горный про найм», «Halbert headlines») becomes the genius filter by itself (`genius_detected`, `name_in_query` in the response); names=0 turns that off
- POST /api/ask {question, genius?, limit?, lang?} — an answer made only of quotes with sources; `why` and `gaps` in English, lang=ru for Russian
- POST /api/council {question, geniuses?: "slug,slug", per?, lang?} — the council: every person answers separately (voices[] with 1–2 quotes each, silent[] — those with nothing to say); 10–30 s
- POST /api/verify {quote, genius?} (or GET ?quote=&genius=) — quote check: verdict = verbatim | close | other_author | not_found, match.original — what was actually said, match.diff — what was changed
- GET  /api/passage/:id?context=1 — the passage and its neighbours
- GET  /api/document/:doc_id — the whole document
- POST /api/ingest {genius, title?, url?, date?, text} — into the review queue (write)
- GET  /api/changes?since=0 — change log from a cursor
- POST /mcp — the same operations as MCP tools sg_* (Streamable HTTP, same Bearer)

Slugs: anton | gorny | kartoz | halbert | dhh | fried | direct. Dates — YYYY-MM-DD. Limits: search ≤ 100, ask ≤ 60 passages for the model.
