consilium-principis
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| fidelity_checkB | Протокол-гейт контура: проверить, дословна ли цитата в корпусе советника → 🔵 (P1/P2) / 🟢 (S1/S2) / 🟡 (не найдено). Помечать 🔵 ТОЛЬКО при 🔵 отсюда. |
| add_sourceA | Затянуть источник в sources/ советника БЕЗ шелла: url (фетч + авто-strip Gutenberg) | text (вставка) | path (локальный текст-файл). Проставляет тир (P1=🔵 первоисточник). Скачивание — ПОДТВЕРДИ у юзера; не-PD хост требует license=public-domain. Потом build_advisor для сборки корпуса. |
| catalog_listA | Список PD-фигур каталога (общественное достояние) — id/имя/место/издание/PD-basis. Без фетча. Чужой выбирает, кого собрать в совет. |
| catalog_searchB | Поиск PD-издания фигуры ВНЕ каталога (Gutenberg через gutendex). Возвращает кандидатов с PD-basis. Оффлайн → честная ошибка. |
| catalog_previewA | Превью PD-издания перед сборкой: сэмпл текста + подпись + PD-host + warnings. НЕ собирает. Это consent-карточка — покажи юзеру ПЕРЕД catalog_add. ref = id каталога ИЛИ прямой url. |
| catalog_addA | Собрать PD-советника ЛОКАЛЬНО из каталога/url. ПОДТВЕРДИ у юзера (Rule 0) — покажи catalog_preview первым. Fetch→сверка подписи (fail-closed на дрейфе)→сборка в advisors/. Не-PD хост требует license=public-domain. |
| catalog_verifyB | Ритуал целостности каталога (как moat-check): обойти записи, сверить подпись/PD-basis, репортить дрейф. Без сборки. |
| diversity_checkA | Ортогональность состава совета (read-only, эхо-камера-детектор): diversity 0..1, дубли-голоса (similarity >= 0.5 → flag=dup), непокрытые оси мышления. ОБЯЗАТЕЛЬНО перед созывом совета (правило 18в): diversity < 0.5 = эхо-камера — предупреди юзера, предложи контр-голос. |
| explain_selfA | Объяснить устройство самого проекта: что это, как работает конкретный тул/правило/концепт (моат/firewall/архитектура), термин глоссария. Возвращает ФАКТЫ с source_ref — проговори их юзеру. topic: пусто|overview | tool:<имя> | rule: | recipe: | concept:moat|firewall|architecture|extend | term:<слово> | свободный текст. |
| config_getA | Прочитать board_config.json (тюнинг без правки файла): весь конфиг или один ключ (retrieval_mode, abstain_threshold, hybrid_alpha…). |
| config_setA | Записать ключ в board_config.json (тюнинг из хоста, persistent). ПОДТВЕРДИ у юзера перед вызовом. Напр. retrieval_mode=auto|hybrid, abstain_threshold=0.5. |
| ollama_statusB | Состояние FULL-тира: запущен ли ollama и скачан ли bge-m3. Без падений. |
| ollama_ensureA | Поднять FULL-тир из тула: стартует |
| ollama_pullB | Скачать модель эмбеддингов в запущенный ollama (идемпотентно). default bge-m3. |
| build_lensB | Собрать grounded-ЛИНЗУ из любого источника (линзы > личности). Основа → P1 (🔵 дословные слова), reading_notes → U1 (🟡 твоё прочтение, не выдаётся за слова автора). Основа: ground_text (вставка) | ground_url (фетч PD-тома + Gutenberg-strip) | ground_path (файл в репо). kind: personality («автор как читаю Я») | method | self. Пишет в advisors/ (личная, не шипится); сразу зови в cite/retrieve. Сбор ИНТЕРАКТИВНЫЙ (правило #8): спроси источник + «как ТЫ читаешь». |
| citeA | ГОТОВЫЕ 🔵-цитаты под довод (вместо ручной сборки — так цитата не станет пересказом). Возвращает {quotes:[{text,source,marker}…], best} — вставь любой как есть в opinion.quote, marker подтверждён. Recall: |
| gate_verdictA | Фаза 2 судейства cite (host-режим): передай nonce из judgment_request и свои ЧЕСТНЫЕ оценки релевантности ratings={id: 0-3} по приложенной рубрике — для КАЖДОГО кандидата. Порог и маркеры применяет СЕРВЕР (решение в коде), оценки логируются. Оценки гейтят ТОЛЬКО релевантность; завышение ради цитат ломает контур. Кривой/истёкший/повторный nonce или пропущенные оценки → fail-closed (🟡/0). |
| retrieveC | Grounded-пассажи из корпуса советника под запрос (чистый контекст для ризонинга). |
| capture_situationB | Захват контекста: сырой дамп (чат-лог конфликта/описание решения) → структура (акторы, реплики, явные вопросы). Вход для карты и рейм-чека. |
| situation_analyzeB | Ситуационная карта: оценить дерево ходов (ты+оппонент). Возвращает оценку, главную линию, ЧЕСТНЫЙ вердикт. opponent∈{self,person,world}, stance∈{competitive,cooperative}. Фабрикацией (grounded:false) не выигрывают. |
| situation_stress_testB | Adversarial-стресс-тест карты: держится ли линия под возмущениями мира (invalidate/weaken/inject_counter). Даёт robustness и fragile_under. Возмущает мир/позицию, НЕ уста советников. |
| governance_verifyB | Целостность корпуса (Барсик hash-chain): подмена рвёт цепь. Даёт отпечаток-хеш + гистограмму тиров. path = каталог советника/линзы или путь к .jsonl. |
| calibrateD | Рекомендация подачи (светлый/тёмный) по журналу решений + guardrail захвата. Метрика — одобрено-задним-числом, не послушался-ли. |
| mirror_reportC | Зеркало дрейфа: заявленные векторы (во времени) vs одобренные выборы → разрыв «говоришь X, выбираешь Y» + дрейф вектора. Не советует, отражает. |
| premortemB | Пре-мортем исхода: сценарии [{label,value,prob}] → ожидаемый исход + крайние случаи. trustworthy=False без истории попаданий (анти-театр). |
| atomic_groundingC | Атомарная верность: разбить заявление на атомы, сверить каждый гейтом, дать inflation gap (насколько единый score завышает обоснованность). |
| advisor_weightsA | Калибровка совета по ИСХОДУ (петля U1): кто был прав ДЛЯ ТЕБЯ → вес голоса. records=[{advisor,outcome,endorsed}]. Laplace: без данных вес нейтрален. |
| stabilityC | Доверие через стабильность: вердикты N прогонов → robust/leaning/coin-flip. Отличает устойчивый вывод от монетки в обёртке мудрости. |
| pending_outcomesC | Сёрфейсер петли U1: незакрытые решения (⏳) из журнала — «вернись и закрой». Без этого исходы висят вечно и петля не накапливается. |
| loop_statusA | Петля исхода. БЕЗ аргументов (старт новой сессии): сам читает журналы (principis.md + relationship.md) и отдаёт висящие ⏳-решения + hint, как мягко предложить их закрыть; ноль висящих → тихий {count:0}. С ledger [{decision_id,predicted,actual,endorsed}] — сводка: открыто/закрыто + точность прогнозов + доля одобренных. |
| board_statusA | Шасси-онбординг: что на доске готово (Принцепс/советники/линзы) + ОДИН приоритетный следующий шаг сборки. Зови в начале, чтобы вести юзера за руку. Может вернуть pending_outcomes (решения без исхода) + loop_nudge — следуй ему. |
| scaffold_principisB | Собрать principis.md из ответов юзера (who/vector/interface_mode/temperament/not_known). Вектор не дан → пробел держим живым. Возвращает markdown — запиши его. |
| list_recipesA | Меню «что умеет совет» простыми фразами — покажи юзеру, когда он не знает, что спросить, или просит «что ты умеешь / с чего начать». surface: data (сырые рецепты, дефолт) | widget (кликабельный HTML для show_widget в Cowork) | html (самодостаточный фолбэк). |
| validate_decision_mapA | Гейты честности карты решения («Principis-расчёт», fail-closed): каждая величина подтверждена юзером (confirmed_by_user), тройки min<=mode<=max / prob в [0,1], статус-кво вариант есть, формулы парсятся, у каждой — словесная версия. → {valid, errors[]}. Ошибки доноси до юзера ВОПРОСАМИ совета, не техдампом. Зови после допроса карты, ПЕРЕД run_calculation. |
| council_verdictA | Вердикт совета по scorecard (read-only, ноль LLM, считает код): после форума по вопросу-решению каждый советник сдаёт оценки вариантов 0..10, вес линзы 1..3, уверенность 1..5, ruin_risk, door, change_my_mind, question_for_user. → метка ИДТИ / ИДТИ С УСЛОВИЯМИ / ПЕРЕДЕЛАТЬ / НЕ ДЕЛАТЬ / ЖДАТЬ, баллы с математикой, разброс, уверенность совета, overrides (потолок разорения, необратимость при расколе, тревога единодушия, ЖДАТЬ), missing. track_weights — выход advisor_weights как есть (множитель зажат 0.5..1.5). Ошибки (errors) доноси ВОПРОСАМИ совета. |
| run_calculationA | Детерминированный Монте-Карло по ВАЛИДНОЙ карте решения (ноль LLM в счёте: считает код, сид фиксирован, тот же сид → тот же результат). Невалидная карта → отказ с errors (fail-closed, доноси их вопросами совета). Возвращает на вариант mean/median/p10/p90, P(лучший), expected_regret, торнадо, top_uncertainties + label_text — готовую «📐 рамку»: показывай расчёт ТОЛЬКО с ней, лейбл «📐» — рядом с 🔵/🟢/🟡, НИКОГДА не смешивая. |
| save_decision_mapA | Сохранить карту решения артефактом decisions/<дата>-.json в корне доски (внутри — карта + МК-сводка с predicted). МУТИРУЮЩИЙ тул: зови ТОЛЬКО с явного согласия юзера (правило 0) — предложи ОДИН РАЗ после расчёта. Возвращает path + journal_line («Прогноз: 📐 …») — готовую строку прогноза для записи в журнал решений (§4.3). slug — латиница/цифры/дефисы. |
| save_decision_cardA | Записать Decision Card артефактом decisions/<дата>-.card.json — момент РЕШЕНИЯ (я выбрал вариант X): UUID (dc_…), prediction contract (числа из mc_run хранятся ЧИСЛАМИ: event probability ИЛИ metric p10/p50/p90+единицы), допущения, критерий успеха, дата ревью. МУТИРУЮЩИЙ тул: зови ТОЛЬКО с согласия юзера (Rule 0), ОДИН РАЗ после того как юзер выбрал вариант. chosen_option — id из map.options или null (defer). Нужна дата возврата: review_date или review_horizon_days. Возвращает card_id + journal_line с якорем. Закрытие исхода — close_decision_card, точность — prediction_calibration. |
| close_decision_cardA | Закрыть Decision Card фактом исхода (МУТИРУЮЩИЙ, Rule 0): числа (occurred для event / actual в ТЕХ ЖЕ единицах для metric) идут в Card, глиф ✅/❌ остаётся человеку в markdown. Ищет карту по card_id (скан decisions/) или path. outcome={resolved_on, occurred|actual, endorsed?, note?}. Fail-closed: чужие единицы / дата раньше created → отказ. Потом зови prediction_calibration. |
| prediction_calibrationA | Числовая калибровка ПРОГНОЗОВ (не подачи): по закрытым Decision Card считает Brier/log score (события) и MAE/покрытие интервала (величины), журнал по группам kind+unit. Показывай юзеру ТОЛЬКО группы trustworthy=true (малый N шумен). Расхождение прогноза и факта — калибровка модели юзера, не провал. |
| render_sessionA | ОБЯЗАТЕЛЬНЫЙ финал заседания совета в Cowork: отрисовать canon-объект заседания виджетом. Зови этот тул ПОСЛЕДНИМ действием, потом скорми вернувшийся |
| export_sessionA | Шеримый пруф заседания (по ЯВНОМУ запросу юзера — правило 0). Отдаёт самодостаточный md (дефолт) | html артефакт: вопрос → советники → 🔵-цитаты с источником → синтез + панель «что совет НЕ стал выдумывать» (session.abstentions) + атрибуция. Приватность: только текущее заседание (переданный объект), файлов не пишет — верни |
| decision_recordA | Протокол заседания (decision-record / минуты) — по ЯВНОМУ запросу юзера («протокол», «минуты», «оформи решение»). Собирает канонический ВЫХОД совета: позиции советников с допущениями, диссент (из disagreement), решение+статус, триггеры пересмотра, provenance-счётчики маркеров. МОАТ: тиры (🔵/🟢/🟡) копируются as-is из session.advisors[].opinions[].marker (гейт проставил их раньше) — тул НИКОГДА не поднимает и не изобретает 🔵. Ноль LLM, чистая агрегация переданного объекта. |
| proof_cardA | Виирал-ассет «show your work»: самодостаточная html-карточка ОДНОЙ цитаты с источником + бейдж «🔵 дословно, с первоисточником». Fail-closed: если цитата НЕ дословна в P1/P2-корпусе советника → {verified:false, content:null} (карточки нет — суть рва). advisor_dir = advisors/{имя} или lenses/{имя}. |
| quote_of_dayA | Ретеншн-крючок (PULL-ONLY, по запросу): одна 🔵-verbatim-цитата дня из P1/P2-корпуса собранного советника + источник. Детерминирована по дате (в течение дня стабильна). advisor_dir опционален (нет → первый собранный). Нет P1/P2-цитат → {note} (не выдумывает generic-мудрость). |
| validate_manifestA | МОАТ-гейт сборки: проверить тир-манифест советника — region-маркеры реально есть в источнике (иначе тиры съедут, 🔵 не на тех словах), тиры валидны, файлы на месте. Зови ПЕРЕД build-advisor. advisor_dir = advisors/{имя}. |
| doctorA | Health-check машины БЕЗ выхода из агента: Python, скилл установлен, какой тир (ollama?), самотест рва (P1→🔵, фейк→None). Read-only. Зови, чтобы понять, готова ли эта машина собирать. |
| build_advisorA | Собрать советника под ключ ИЗ АГЕНТА: манифест-гейт → corpus → kernels → индекс. advisor_dir = advisors/{имя}. ФОНОВЫЙ ДЖОБ (долго): вернёт {job_id} сразу — опрашивай job_status(job_id), не жди здесь. Сначала validate_manifest. |
| seed_councilA | Собрать стартовый совет PD-мудрецов (Аврелий+Эпиктет) с нуля — холодный старт без шелла. ФОНОВЫЙ ДЖОБ (долго + сеть Gutenberg): вернёт {job_id} сразу, опрашивай job_status. Идемпотентно по уже собранным. |
| ingest_telegramA | Публичный Telegram-канал → корпус Принцепса (твои слова = P1). ФОНОВЫЙ ДЖОБ (сеть): вернёт {job_id}, опрашивай job_status. handle = @name или name. 0 постов = приватный/неверный/sandbox-блок сети. |
| job_statusA | Статус фонового джоба по job_id (от build_advisor/seed_council/ingest_telegram): status = running | done (с result) | error (с error). Опрашивай, пока не done. |
| setup_fullA | Поднять FULL-тир (семантика) ИЗ АГЕНТА: системный ollama НЕ ставим молча (вернём инструкцию под ОС), модель bge-m3 — авто-pull при consent. Возвращает шаги + финальный статус. consent=false → только план, без выполнения. |
| federation_openB | Координатор совета-федерации: разложить план ролей в очередь по N реплик (многомозговый совет — исполнители играют роли на СВОИХ моделях). plan = [{role, advisor_dir, question, replicas?}]. Стейт локально в .consilium/. Personal/attended (опциональный многомозговый режим). |
| federation_pollA | Статус сессии-федерации: счётчики pending/claimed/done/dead. Опрашивай, пока роли набирают кандидатов, затем federation_assemble. |
| federation_assembleB | Собрать совет: сгруппировать кандидатов по роли, СЕРВЕР сверяет верность цитат централизованно (воркер не сертифицирует 🔵), сохранить дивергенцию (не best-of-N) + идентичность моделей. Пустая роль → host_single_brain (diversity reduced). verdict PASS/FIX/ESCALATE. |
| federation_claimB | Исполнитель забирает роль-таск (блокирующе до timeout) → структурный бриф {task_id, claim_token, role, advisor_dir, question} или {empty}. Сыграй advisor_dir на СВОЕЙ модели, цитаты через cite, затем federation_submit. |
| federation_submitA | Исполнитель кладёт СЫРОГО кандидата {argument, quotes:[{text}]} + worker_model (своя модель). Валидация размер/типы/control-chars; маркеры НЕ ставь — сервер сверит на assemble. stale claim_token → отклонён. |
| federation_heartbeatB | Исполнитель продлевает lease роль-таска (task_id, worker_id, claim_token), пока играет роль. stale → задача уже переназначена. |
| subscriptions_statusA | Какие подписочные CLI установлены (Claude Code / Codex / Kimi Code) — кандидаты в мозги многомодельного совета без API-ключа. probe=true — живой пинг каждой подписки (тратит крошку квоты, ловит исчерпанный лимит/разлогин). Read-only. |
| federation_run_subscriptionsA | Сыграть ОТКРЫТУЮ сессию федерации подписками юзера: фоновый воркер, каждая подписка (claude/codex/kimi) играет каждую роль своей моделью, цитаты — через наш retrieve, 🔵 ставит сервер на assemble. МУТИРУЮЩИЙ + EGRESS (вопрос уходит провайдерам подписок, тратится квота) → ТОЛЬКО с явного согласия юзера, назвав подписки. replicas в federation_open = числу подписок. Сразу отвечает; дальше federation_poll до pending=0/claimed=0 → federation_assemble. |
| federation_cancel_subscriptionsA | Остановить фоновых подписочных воркеров сессии (запущенных federation_run_subscriptions): гасит их процессы вместе с CLI-детьми и чистит реестр. МУТИРУЮЩИЙ — по просьбе юзера (передумал, квота горит). |
| calibrated_consult_openB | Анти-оверрелайанс ИНСТРУМЕНТ (не совет): зафиксировать ТВОЮ позицию + уверенность (0..1) ДО ответа совета, чтобы потом увидеть свой сдвиг. Зови в режиме calibrated-consult ПЕРЕД тем как спросить совет. Пишет запись (Rule 0). Затем calibrated_consult_close после ответа совета. |
| calibrated_consult_closeA | Зафиксировать ТВОЮ позицию ПОСЛЕ ответа совета + получить ЗЕРКАЛО (сдвиг позиции, инфляция уверенности, подавлено ли «не знаю»). followed_council: принял ли ты позицию совета. prediction (опц.): resolvable-прогноз (контракт decision_card) для калибровки по исходу. Идёт после calibrated_consult_open; закрой исход позже через calibrated_consult_resolve. |
| calibrated_consult_resolveA | Проставить ИСХОД консульту (когда факт лёг): outcome={resolved_on, occurred|actual, endorsed?}. Кормит калибровку оси оверрелайанса. Fail-closed: нужен прогноз в консульте и верный тип исхода. Сводку оси смотри в calibrated_consult_journal. |
| calibrated_consult_journalB | Сводка ОСИ ОВЕРРЕЛАЙАНСА по твоим консультам: инфляция уверенности, сколько раз «не знаю» подавлено, калибровка followed-совета против самостоятельных. Малое N → trustworthy=false (мало данных). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 65 tools
Despite very detailed descriptions, several families blur together: render_session/export_session/decision_record all output a session, save_decision_map/save_decision_card both persist decision artifacts, and the calibration cluster (calibrate, prediction_calibration, calibrated_consult_journal, advisor_weights, mirror_report) is hard to tell apart. loop_status/pending_outcomes/board_status all surface pending outcomes, adding further overlap. An agent must read carefully to avoid misselection.
Names are consistently snake_case and grouped by prefix families (federation_*, catalog_*, ollama_*, calibrated_consult_*), which aids readability. However the verb/noun convention is mixed: some are noun_status (board_status, job_status), some verb_noun (build_advisor, seed_council), and many are bare nouns/verbs (cite, retrieve, calibrate, premortem, doctor, stability). No single predictable pattern across the set.
65 tools is far beyond a manageable surface and well past the 25+ threshold for 'too many'. The domain (multi-brain federation, PD catalog, decision science, calibration, sessions) is genuinely broad, which explains some sprawl, but many tools could be consolidated into submodes. The count alone makes discovery and correct selection difficult.
Coverage is extensive: onboarding/scaffolding, corpus building, catalog fetch/verify, federation orchestration, decision mapping/calculation, prediction and overreliance calibration, and session rendering/export are all present. Minor gaps exist (e.g. no delete/invalidate operations for advisors or saved decision artifacts), but core lifecycle paths appear well covered.