render_session
Render the council session canon as a widget, validating quote attribution before display; use as the final step, then pass its content to the visualizer.
Instructions
ОБЯЗАТЕЛЬНЫЙ финал заседания совета в 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 Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| depth | No | ||
| session | Yes | Канон-объект заседания. ВАЖНО — точные имена полей, иначе движок отрисует только имена советников, а вердикт потеряется: {question:str, reframe?:str, advisors:[{name:str, opinions:[{argument:str (довод на языке юзера), quote?:{text:str, source?:str, translation?:str}, marker?:'blue'|'green'|'yellow'|'violation'}], advisor_dir?:str}], disagreement?:{axis:str, sides:[str], resolver?:str}, premortem?:[{advisor:str, reason:str}], synthesis:str (ВЕРДИКТ), what_you_lose?:str, step?:str}. Алиасы тоже приняты (advisor.position→argument, advisor.quote→opinions[].quote, verdict→synthesis), но канон надёжнее. | |
| surface | No |