Skip to main content
Glama
ilyautov

consilium-principis

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

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

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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 serve, если бинарь есть. Единственный ручной шаг — первая установка бинаря (вернётся в manual). Потом ollama_pull.

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: query можно СПИСКОМ формулировок, давай их в ЯЗЫКЕ КОРПУСА (English) — находок больше; ретрив якорится по кернелам советника. Нет дословного → quotes:[], 🟡. НЕ переписывай text. Может вернуть phase=judgment_request (host-режим судьи): тогда цитат ещё нет — честно оцени кандидатов по рубрике 0-3 и вызови gate_verdict.

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-объект заседания виджетом. Зови этот тул ПОСЛЕДНИМ действием, потом скорми вернувшийся content в mcp__visualize__show_widget — вердикт прозой НЕ пиши. surface: widget (Cowork, дефолт-выбор, кликабельный sendPrompt) | md (только если show_widget недоступен) | html (фолбэк). Контур/гейт 🔵 пройдены ризонингом ДО рендера. Рендер ДОПОЛНИТЕЛЬНО валидирует атрибуцию: 🔵/🟢-цитата, не верифицируемая корпусом СВОЕГО советника, понижается до нарушения (не переставляй цитаты между советниками); «blue» на цитате из комментария (S-тир) понижается до green. Клади advisor_dir в каждый advisors[]-блок — надёжный канал атрибуции (имя — exact-match фолбэк). depth=plain по умолчанию. См. session_render.py.

export_sessionA

Шеримый пруф заседания (по ЯВНОМУ запросу юзера — правило 0). Отдаёт самодостаточный md (дефолт) | html артефакт: вопрос → советники → 🔵-цитаты с источником → синтез + панель «что совет НЕ стал выдумывать» (session.abstentions) + атрибуция. Приватность: только текущее заседание (переданный объект), файлов не пишет — верни content юзеру, сохраняет он.

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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.9/5.0

Scored across 65 tools

Disambiguation2/5

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.

Naming Consistency3/5

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.

Tool Count2/5

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.

Completeness4/5

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.

Maintenance

ActivityMaintained
ResponsivenessNo issues