# Consilium Principis (mcpb · consilium-principis.mcpb)

AI advisory board (MCP): quotes verified word-for-word against public-domain texts, fail-closed

- Trust score: 13/100 (low)
- Change this week: −2
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- mcpb · `consilium-principis.mcpb`: 13/100 (this document), [markdown](https://verifymcp.io/servers/ilyautov-consilium-principis/https-github-com-ilyautov-consilium-principis-releases-download-v0-1-3-consilium.md), [page](https://verifymcp.io/servers/ilyautov-consilium-principis/https-github-com-ilyautov-consilium-principis-releases-download-v0-1-3-consilium)

## Channel facts

- Registry: `mcpb`
- Package: `https://github.com/ilyautov/consilium-principis/releases/download/v0.1.3/consilium-principis.mcpb`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 13/100
  - Malware scan not yet available for this package.
  - CVE data not yet available for this package.
  - No install/post-install scripts declared.
  - Dependency-health data not yet available.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 9 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 0/100
  - Schema quality not yet verified: our sandbox run of this package did not complete, so we have no schema to assess.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: our sandbox run of this package did not complete, so we have no schema to compare.
- **Tool Coverage**: 0/100
  - Tool coverage not yet verified: our sandbox run of this package did not complete, so we have no tool definitions to assess.
- **Capabilities**: 0/100
  - Protocol version not yet verified: our sandbox run of this package did not complete, so we never saw its MCP handshake.

**Unverified: 4 categories.** Categories scored 0 because our sandbox run of this package has not given us the schema these checks need to read. That is a gap on our side rather than a finding about the package, and we only credit what we can confirm, so the score stands at 0 until the capture succeeds. We are working through the fleet, so this normally clears without any action from you.

## Install

- Download bundle: `https://github.com/ilyautov/consilium-principis/releases/download/v0.1.3/consilium-principis.mcpb`

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-07-31 (score 13, −2)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-28 (score 15, 0)

- [functional] Schema quality: Schema quality not yet verified: our sandbox run of this package did not complete, so we have no schema to assess.
- [functional] Tool coverage: Tool coverage not yet verified: our sandbox run of this package did not complete, so we have no tool definitions to assess.

### 2026-07-26 (score 15)

First indexed and scored.

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

## MCP tools (61)

### `fidelity_check` (~88 tokens)

Протокол-гейт контура: проверить, дословна ли цитата в корпусе советника → 🔵 (P1/P2) / 🟢 (S1/S2) / 🟡 (не найдено). Помечать 🔵 ТОЛЬКО при 🔵 отсюда.

Input parameters:

- `advisor_dir` (string, required)
- `quote` (string, required)

### `add_source` (~220 tokens)

Затянуть источник в sources/ советника БЕЗ шелла: url (фетч + авто-strip Gutenberg) | text (вставка) | path (локальный текст-файл). Проставляет тир (P1=🔵 первоисточник). Скачивание — ПОДТВЕРДИ у юзера; не-PD хост требует license=public-domain. Потом build_advisor для сборки корпуса.

Input parameters:

- `advisor_dir` (string, required)
- `back_from` (string): хост-оверрайд: маркер начала приложений
- `basename` (string)
- `front_until` (string): хост-оверрайд: маркер конца вступления
- `license` (string)
- `mode` (string): auto (дефолт): детект аппарата → tier, если есть. tier/clean/raw — явно.
- `path` (string)
- `text` (string)
- `tier` (string)
- `url` (string)

### `catalog_list` (~55 tokens)

Список PD-фигур каталога (общественное достояние) — id/имя/место/издание/PD-basis. Без фетча. Чужой выбирает, кого собрать в совет.

### `catalog_search` (~54 tokens)

Поиск PD-издания фигуры ВНЕ каталога (Gutenberg через gutendex). Возвращает кандидатов с PD-basis. Оффлайн → честная ошибка.

Input parameters:

- `author` (string, required)

### `catalog_preview` (~74 tokens)

Превью PD-издания перед сборкой: сэмпл текста + подпись + PD-host + warnings. НЕ собирает. Это consent-карточка — покажи юзеру ПЕРЕД catalog_add. ref = id каталога ИЛИ прямой url.

Input parameters:

- `ref` (string, required)

### `catalog_add` (~100 tokens)

Собрать PD-советника ЛОКАЛЬНО из каталога/url. ПОДТВЕРДИ у юзера (Rule 0) — покажи catalog_preview первым. Fetch→сверка подписи (fail-closed на дрейфе)→сборка в advisors/<id>. Не-PD хост требует license=public-domain.

Input parameters:

- `license` (string)
- `ref` (string, required)

### `catalog_verify` (~45 tokens)

Ритуал целостности каталога (как moat-check): обойти записи, сверить подпись/PD-basis, репортить дрейф. Без сборки.

### `diversity_check` (~117 tokens)

Ортогональность состава совета (read-only, эхо-камера-детектор): diversity 0..1, дубли-голоса (similarity >= 0.5 → flag=dup), непокрытые оси мышления. ОБЯЗАТЕЛЬНО перед созывом совета (правило 18в): diversity < 0.5 = эхо-камера — предупреди юзера, предложи контр-голос.

Input parameters:

- `advisor_dirs` (array, required)

### `explain_self` (~119 tokens)

Объяснить устройство самого проекта: что это, как работает конкретный тул/правило/концепт (моат/firewall/архитектура), термин глоссария. Возвращает ФАКТЫ с source_ref — проговори их юзеру. topic: пусто|overview | tool:<имя> | rule:<N> | recipe:<id> | concept:moat|firewall|architecture|extend | term:<слово> | свободный текст.

Input parameters:

- `topic` (string)

### `config_get` (~49 tokens)

Прочитать board_config.json (тюнинг без правки файла): весь конфиг или один ключ (retrieval_mode, abstain_threshold, hybrid_alpha…).

Input parameters:

- `key` (string)

### `config_set` (~78 tokens)

Записать ключ в board_config.json (тюнинг из хоста, persistent). ПОДТВЕРДИ у юзера перед вызовом. Напр. retrieval_mode=auto|hybrid, abstain_threshold=0.5.

Input parameters:

- `key` (string, required)
- `value` (string|number|boolean, required)

### `ollama_status` (~35 tokens)

Состояние FULL-тира: запущен ли ollama и скачан ли bge-m3. Без падений.

### `ollama_ensure` (~53 tokens)

Поднять FULL-тир из тула: стартует `ollama serve`, если бинарь есть. Единственный ручной шаг — первая установка бинаря (вернётся в manual). Потом ollama_pull.

### `ollama_pull` (~42 tokens)

Скачать модель эмбеддингов в запущенный ollama (идемпотентно). default bge-m3.

Input parameters:

- `model` (string)

### `build_lens` (~257 tokens)

Собрать grounded-ЛИНЗУ из любого источника (линзы > личности). Основа → P1 (🔵 дословные слова), reading_notes → U1 (🟡 твоё прочтение, не выдаётся за слова автора). Основа: ground_text (вставка) | ground_url (фетч PD-тома + Gutenberg-strip) | ground_path (файл в репо). kind: personality («автор как читаю Я») | method | self. Пишет в advisors/<slug> (личная, не шипится); сразу зови в cite/retrieve. Сбор ИНТЕРАКТИВНЫЙ (правило #8): спроси источник + «как ТЫ читаешь».

Input parameters:

- `author` (string)
- `axis` (string)
- `dest` (string)
- `ground_path` (string)
- `ground_text` (string)
- `ground_url` (string)
- `kind` (string)
- `license` (string)
- `name` (string, required)
- `reading_notes` (string)
- `run_kernels` (boolean)
- `slug` (string)

### `cite` (~254 tokens)

ГОТОВЫЕ 🔵-цитаты под довод (вместо ручной сборки — так цитата не станет пересказом). Возвращает {quotes:[{text,source,marker}…], best} — вставь любой как есть в opinion.quote, marker подтверждён. Recall: `query` можно СПИСКОМ формулировок, давай их в ЯЗЫКЕ КОРПУСА (English) — находок больше; ретрив якорится по кернелам советника. Нет дословного → quotes:[], 🟡. НЕ переписывай text. Может вернуть phase=judgment_request (host-режим судьи): тогда цитат ещё нет — честно оцени кандидатов по рубрике 0-3 и вызови gate_verdict.

Input parameters:

- `advisor_dir` (string, required): Советник: имя как в board_status/roster ('marcus-aurelius') ИЛИ путь 'advisors/marcus-aurelius'.
- `limit` (integer)
- `query` (string|array, required)
- `top_k` (integer)
- `use_kernels` (boolean)

### `gate_verdict` (~229 tokens)

Фаза 2 судейства cite (host-режим): передай nonce из judgment_request и свои ЧЕСТНЫЕ оценки релевантности ratings={id: 0-3} по приложенной рубрике — для КАЖДОГО кандидата. Порог и маркеры применяет СЕРВЕР (решение в коде), оценки логируются. Оценки гейтят ТОЛЬКО релевантность; завышение ради цитат ломает контур. Кривой/истёкший/повторный nonce или пропущенные оценки → fail-closed (🟡/0).

Input parameters:

- `advisor_dir` (string, required): ТОТ ЖE советник, что в cite фазы 1 — имя ('marcus-aurelius') ИЛИ путь ('advisors/marcus-aurelius'). Должен совпасть с советником nonce, иначе вердикт не принимается (fail-closed 🟡).
- `nonce` (string, required)
- `ratings` (object, required)

### `retrieve` (~98 tokens)

Grounded-пассажи из корпуса советника под запрос (чистый контекст для ризонинга).

Input parameters:

- `advisor_dir` (string, required): Советник: имя как в board_status/roster ('marcus-aurelius') ИЛИ путь 'advisors/marcus-aurelius'. Неизвестный → явная ошибка со списком известных.
- `query` (string, required)
- `top_k` (integer)

### `capture_situation` (~61 tokens)

Захват контекста: сырой дамп (чат-лог конфликта/описание решения) → структура (акторы, реплики, явные вопросы). Вход для карты и рейм-чека.

Input parameters:

- `text` (string, required)

### `situation_analyze` (~100 tokens)

Ситуационная карта: оценить дерево ходов (ты+оппонент). Возвращает оценку, главную линию, ЧЕСТНЫЙ вердикт. opponent∈{self,person,world}, stance∈{competitive,cooperative}. Фабрикацией (grounded:false) не выигрывают.

Input parameters:

- `opponent` (string)
- `stance` (string)
- `tree` (object, required)

### `situation_stress_test` (~82 tokens)

Adversarial-стресс-тест карты: держится ли линия под возмущениями мира (invalidate/weaken/inject_counter). Даёт robustness и fragile_under. Возмущает мир/позицию, НЕ уста советников.

Input parameters:

- `perturbations` (array, required)
- `stance` (string)
- `tree` (object, required)

### `governance_verify` (~65 tokens)

Целостность корпуса (Барсик hash-chain): подмена рвёт цепь. Даёт отпечаток-хеш + гистограмму тиров. path = каталог советника/линзы или путь к .jsonl.

Input parameters:

- `path` (string, required)

### `calibrate` (~59 tokens)

Рекомендация подачи (светлый/тёмный) по журналу решений + guardrail захвата. Метрика — одобрено-задним-числом, не послушался-ли.

Input parameters:

- `log_text` (string, required)

### `mirror_report` (~71 tokens)

Зеркало дрейфа: заявленные векторы (во времени) vs одобренные выборы → разрыв «говоришь X, выбираешь Y» + дрейф вектора. Не советует, отражает.

Input parameters:

- `decisions` (array, required)
- `stated` (array, required)

### `premortem` (~60 tokens)

Пре-мортем исхода: сценарии [{label,value,prob}] → ожидаемый исход + крайние случаи. trustworthy=False без истории попаданий (анти-театр).

Input parameters:

- `ledger` (array)
- `scenarios` (array, required)

### `atomic_grounding` (~63 tokens)

Атомарная верность: разбить заявление на атомы, сверить каждый гейтом, дать inflation gap (насколько единый score завышает обоснованность).

Input parameters:

- `advisor_dir` (string, required)
- `text` (string, required)

### `advisor_weights` (~71 tokens)

Калибровка совета по ИСХОДУ (петля U1): кто был прав ДЛЯ ТЕБЯ → вес голоса. records=[{advisor,outcome,endorsed}]. Laplace: без данных вес нейтрален.

Input parameters:

- `records` (array, required)

### `stability` (~55 tokens)

Доверие через стабильность: вердикты N прогонов → robust/leaning/coin-flip. Отличает устойчивый вывод от монетки в обёртке мудрости.

Input parameters:

- `verdicts` (array, required)

### `pending_outcomes` (~66 tokens)

Сёрфейсер петли U1: незакрытые решения (⏳) из журнала — «вернись и закрой». Без этого исходы висят вечно и петля не накапливается.

Input parameters:

- `journal_text` (string, required)

### `loop_status` (~123 tokens)

Петля исхода. БЕЗ аргументов (старт новой сессии): сам читает журналы (principis.md + relationship.md) и отдаёт висящие ⏳-решения + hint, как мягко предложить их закрыть; ноль висящих → тихий {count:0}. С ledger [{decision_id,predicted,actual,endorsed}] — сводка: открыто/закрыто + точность прогнозов + доля одобренных.

Input parameters:

- `ledger` (array)

### `board_status` (~81 tokens)

Шасси-онбординг: что на доске готово (Принцепс/советники/линзы) + ОДИН приоритетный следующий шаг сборки. Зови в начале, чтобы вести юзера за руку. Может вернуть pending_outcomes (решения без исхода) + loop_nudge — следуй ему.

### `scaffold_principis` (~60 tokens)

Собрать principis.md из ответов юзера (who/vector/interface_mode/temperament/not_known). Вектор не дан → пробел держим живым. Возвращает markdown — запиши его.

Input parameters:

- `answers` (object, required)

### `list_recipes` (~98 tokens)

Меню «что умеет совет» простыми фразами — покажи юзеру, когда он не знает, что спросить, или просит «что ты умеешь / с чего начать». surface: data (сырые рецепты, дефолт) | widget (кликабельный HTML для show_widget в Cowork) | html (самодостаточный фолбэк).

Input parameters:

- `surface` (string)

### `validate_decision_map` (~134 tokens)

Гейты честности карты решения («Principis-расчёт», fail-closed): каждая величина подтверждена юзером (confirmed_by_user), тройки min<=mode<=max / prob в [0,1], статус-кво вариант есть, формулы парсятся, у каждой — словесная версия. → {valid, errors[]}. Ошибки доноси до юзера ВОПРОСАМИ совета, не техдампом. Зови после допроса карты, ПЕРЕД run_calculation.

Input parameters:

- `map` (object, required)

### `run_calculation` (~181 tokens)

Детерминированный Монте-Карло по ВАЛИДНОЙ карте решения (ноль LLM в счёте: считает код, сид фиксирован, тот же сид → тот же результат). Невалидная карта → отказ с errors (fail-closed, доноси их вопросами совета). Возвращает на вариант mean/median/p10/p90, P(лучший), expected_regret, торнадо, top_uncertainties + label_text — готовую «📐 рамку»: показывай расчёт ТОЛЬКО с ней, лейбл «📐» — рядом с 🔵/🟢/🟡, НИКОГДА не смешивая.

Input parameters:

- `map` (object, required)
- `n` (integer)
- `seed` (integer)

### `save_decision_map` (~167 tokens)

Сохранить карту решения артефактом decisions/<дата>-<slug>.json в корне доски (внутри — карта + МК-сводка с predicted). МУТИРУЮЩИЙ тул: зови ТОЛЬКО с явного согласия юзера (правило 0) — предложи ОДИН РАЗ после расчёта. Возвращает path + journal_line («Прогноз: 📐 …») — готовую строку прогноза для записи в журнал решений (§4.3). slug — латиница/цифры/дефисы.

Input parameters:

- `map` (object, required)
- `n` (integer)
- `seed` (integer)
- `slug` (string)

### `save_decision_card` (~320 tokens)

Записать Decision Card артефактом decisions/<дата>-<slug>.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.

Input parameters:

- `assumptions` (array)
- `chosen_option` (string|null, required)
- `form` (string)
- `map` (object, required)
- `map_path` (string)
- `n` (integer)
- `owner` (string)
- `reversibility` (string)
- `review_date` (string)
- `review_horizon_days` (integer)
- `seed` (integer)
- `session_id` (string)
- `situation_ref` (string)
- `slug` (string)
- `statement` (string)
- `success_criterion` (object)

### `close_decision_card` (~141 tokens)

Закрыть 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.

Input parameters:

- `card_id` (string)
- `outcome` (object, required)
- `path` (string)

### `prediction_calibration` (~109 tokens)

Числовая калибровка ПРОГНОЗОВ (не подачи): по закрытым Decision Card считает Brier/log score (события) и MAE/покрытие интервала (величины), журнал по группам kind+unit. Показывай юзеру ТОЛЬКО группы trustworthy=true (малый N шумен). Расхождение прогноза и факта — калибровка модели юзера, не провал.

### `render_session` (~477 tokens)

ОБЯЗАТЕЛЬНЫЙ финал заседания совета в 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.

Input parameters:

- `depth` (string)
- `kind` (string)
- `session` (object, required): Канон-объект заседания. ВАЖНО — точные имена полей, иначе движок отрисует только имена советников, а вердикт потеряется: {question:str, reframe?:str, advisors:[{name:str, opinions:[{argument:str (дов…
- `surface` (string)

### `export_session` (~153 tokens)

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

Input parameters:

- `include_abstentions` (boolean)
- `session` (object, required)
- `surface` (string)

### `decision_record` (~187 tokens)

Протокол заседания (decision-record / минуты) — по ЯВНОМУ запросу юзера («протокол», «минуты», «оформи решение»). Собирает канонический ВЫХОД совета: позиции советников с допущениями, диссент (из disagreement), решение+статус, триггеры пересмотра, provenance-счётчики маркеров. МОАТ: тиры (🔵/🟢/🟡) копируются as-is из session.advisors[].opinions[].marker (гейт проставил их раньше) — тул НИКОГДА не поднимает и не изобретает 🔵. Ноль LLM, чистая агрегация переданного объекта.

Input parameters:

- `session` (object, required)
- `surface` (string)

### `proof_card` (~125 tokens)

Виирал-ассет «show your work»: самодостаточная html-карточка ОДНОЙ цитаты с источником + бейдж «🔵 дословно, с первоисточником». Fail-closed: если цитата НЕ дословна в P1/P2-корпусе советника → {verified:false, content:null} (карточки нет — суть рва). advisor_dir = advisors/{имя} или lenses/{имя}.

Input parameters:

- `advisor_dir` (string, required)
- `quote` (string, required)

### `quote_of_day` (~123 tokens)

Ретеншн-крючок (PULL-ONLY, по запросу): одна 🔵-verbatim-цитата дня из P1/P2-корпуса собранного советника + источник. Детерминирована по дате (в течение дня стабильна). advisor_dir опционален (нет → первый собранный). Нет P1/P2-цитат → {note} (не выдумывает generic-мудрость).

Input parameters:

- `advisor_dir` (string)
- `date` (string)

### `validate_manifest` (~86 tokens)

МОАТ-гейт сборки: проверить тир-манифест советника — region-маркеры реально есть в источнике (иначе тиры съедут, 🔵 не на тех словах), тиры валидны, файлы на месте. Зови ПЕРЕД build-advisor. advisor_dir = advisors/{имя}.

Input parameters:

- `advisor_dir` (string, required)

### `doctor` (~67 tokens)

Health-check машины БЕЗ выхода из агента: Python, скилл установлен, какой тир (ollama?), самотест рва (P1→🔵, фейк→None). Read-only. Зови, чтобы понять, готова ли эта машина собирать.

### `build_advisor` (~117 tokens)

Собрать советника под ключ ИЗ АГЕНТА: манифест-гейт → corpus → kernels → индекс. advisor_dir = advisors/{имя}. ФОНОВЫЙ ДЖОБ (долго): вернёт {job_id} сразу — опрашивай job_status(job_id), не жди здесь. Сначала validate_manifest.

Input parameters:

- `advisor_dir` (string, required)
- `author` (string)
- `run_index` (boolean)
- `run_kernels` (boolean)

### `seed_council` (~87 tokens)

Собрать стартовый совет PD-мудрецов (Аврелий+Эпиктет) с нуля — холодный старт без шелла. ФОНОВЫЙ ДЖОБ (долго + сеть Gutenberg): вернёт {job_id} сразу, опрашивай job_status. Идемпотентно по уже собранным.

### `ingest_telegram` (~97 tokens)

Публичный Telegram-канал → корпус Принцепса (твои слова = P1). ФОНОВЫЙ ДЖОБ (сеть): вернёт {job_id}, опрашивай job_status. handle = @name или name. 0 постов = приватный/неверный/sandbox-блок сети.

Input parameters:

- `handle` (string, required)
- `out_path` (string)

### `job_status` (~66 tokens)

Статус фонового джоба по job_id (от build_advisor/seed_council/ingest_telegram): status = running | done (с result) | error (с error). Опрашивай, пока не done.

Input parameters:

- `job_id` (string, required)

### `setup_full` (~81 tokens)

Поднять FULL-тир (семантика) ИЗ АГЕНТА: системный ollama НЕ ставим молча (вернём инструкцию под ОС), модель bge-m3 — авто-pull при consent. Возвращает шаги + финальный статус. consent=false → только план, без выполнения.

Input parameters:

- `consent` (boolean)

### `federation_open` (~111 tokens)

Координатор совета-федерации: разложить план ролей в очередь по N реплик (многомозговый совет — исполнители играют роли на СВОИХ моделях). plan = [{role, advisor_dir, question, replicas?}]. Стейт локально в .consilium/. Personal/attended (опциональный многомозговый режим).

Input parameters:

- `plan` (array, required)
- `replicas_default` (integer)
- `session_id` (string, required)

### `federation_poll` (~55 tokens)

Статус сессии-федерации: счётчики pending/claimed/done/dead. Опрашивай, пока роли набирают кандидатов, затем federation_assemble.

Input parameters:

- `session_id` (string, required)

### `federation_assemble` (~96 tokens)

Собрать совет: сгруппировать кандидатов по роли, СЕРВЕР сверяет верность цитат централизованно (воркер не сертифицирует 🔵), сохранить дивергенцию (не best-of-N) + идентичность моделей. Пустая роль → host_single_brain (diversity reduced). verdict PASS/FIX/ESCALATE.

Input parameters:

- `session_id` (string, required)

### `federation_claim` (~92 tokens)

Исполнитель забирает роль-таск (блокирующе до timeout) → структурный бриф {task_id, claim_token, role, advisor_dir, question} или {empty}. Сыграй advisor_dir на СВОЕЙ модели, цитаты через cite, затем federation_submit.

Input parameters:

- `roles` (array)
- `timeout` (number)
- `worker_id` (string, required)

### `federation_submit` (~108 tokens)

Исполнитель кладёт СЫРОГО кандидата {argument, quotes:[{text}]} + worker_model (своя модель). Валидация размер/типы/control-chars; маркеры НЕ ставь — сервер сверит на assemble. stale claim_token → отклонён.

Input parameters:

- `candidate` (object, required)
- `claim_token` (string, required)
- `task_id` (string, required)
- `worker_id` (string, required)
- `worker_model` (string, required)

### `federation_heartbeat` (~66 tokens)

Исполнитель продлевает lease роль-таска (task_id, worker_id, claim_token), пока играет роль. stale → задача уже переназначена.

Input parameters:

- `claim_token` (string, required)
- `task_id` (string, required)
- `worker_id` (string, required)

### `calibrated_consult_open` (~126 tokens)

Анти-оверрелайанс ИНСТРУМЕНТ (не совет): зафиксировать ТВОЮ позицию + уверенность (0..1) ДО ответа совета, чтобы потом увидеть свой сдвиг. Зови в режиме calibrated-consult ПЕРЕД тем как спросить совет. Пишет запись (Rule 0). Затем calibrated_consult_close после ответа совета.

Input parameters:

- `prior_abstain` (boolean)
- `prior_call` (string, required)
- `prior_confidence` (number, required)
- `question` (string, required)

### `calibrated_consult_close` (~165 tokens)

Зафиксировать ТВОЮ позицию ПОСЛЕ ответа совета + получить ЗЕРКАЛО (сдвиг позиции, инфляция уверенности, подавлено ли «не знаю»). followed_council: принял ли ты позицию совета. prediction (опц.): resolvable-прогноз (контракт decision_card) для калибровки по исходу. Идёт после calibrated_consult_open; закрой исход позже через calibrated_consult_resolve.

Input parameters:

- `consult_id` (string, required)
- `followed_council` (boolean, required)
- `posterior_abstain` (boolean)
- `posterior_call` (string, required)
- `posterior_confidence` (number, required)
- `prediction` (object)

### `calibrated_consult_resolve` (~102 tokens)

Проставить ИСХОД консульту (когда факт лёг): outcome={resolved_on, occurred|actual, endorsed?}. Кормит калибровку оси оверрелайанса. Fail-closed: нужен прогноз в консульте и верный тип исхода. Сводку оси смотри в calibrated_consult_journal.

Input parameters:

- `consult_id` (string, required)
- `outcome` (object, required)

### `calibrated_consult_journal` (~70 tokens)

Сводка ОСИ ОВЕРРЕЛАЙАНСА по твоим консультам: инфляция уверенности, сколько раз «не знаю» подавлено, калибровка followed-совета против самостоятельных. Малое N → trustworthy=false (мало данных).

## Diagnostics

Captured diagnostic sections: Provenance. The full working is on the page: https://verifymcp.io/servers/ilyautov-consilium-principis/https-github-com-ilyautov-consilium-principis-releases-download-v0-1-3-consilium#diagnostics

## Score history

- 2026-08-03: 13
- 2026-08-02: 13
- 2026-08-01: 13
- 2026-07-31: 13
- 2026-07-30: 15
- 2026-07-29: 15
- 2026-07-28: 15
- 2026-07-27: 15
- 2026-07-26: 15

## Links

- Repository: https://github.com/ilyautov/consilium-principis
- Changelog RSS feed: https://verifymcp.io/servers/ilyautov-consilium-principis/https-github-com-ilyautov-consilium-principis-releases-download-v0-1-3-consilium/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/ilyautov-consilium-principis/https-github-com-ilyautov-consilium-principis-releases-download-v0-1-3-consilium/changelog.json
- HTML version of this page: https://verifymcp.io/servers/ilyautov-consilium-principis/https-github-com-ilyautov-consilium-principis-releases-download-v0-1-3-consilium
