Agent Conductor
Agent Conductor
AGENTS.md на входе, управляемая команда агентов — на выходе.
Agent Conductor — это MCP-сервер, который превращает две конвенции, на которых сошлась экосистема кодинг-агентов, — операционные руководства AGENTS.md и навыки SKILL.md — из пассивной документации в активный слой оркестрации, где движок принятия решений, укреплённый консенсусом, ставит шлюзы на критические изменения.
Зеркала: Cubiczan/agent-conductor · codeberg.org/cubiczan/agent-conductor · icohangar-ops/agent-conductor
Лицензия: MIT
Статус: v0.1 — рабочий каркас; см. Дорожную карту
The problem
Каждый серьёзный агентный инструмент — Claude Code, Cursor, Copilot, Codex, Gemini CLI — сейчас читает AGENTS.md в корне репозитория и каталог навыков SKILL.md. Но обе конвенции — это проза на честном слове:
Ничто не компилирует контракт. Непреложные правила, границы слоёв и чек-листы проверок живут как markdown, который агент может усвоить, а может и нет.
Ничто не ставит шлюз решению. Агент, который собирается переписать вашу скоринговую модель, действует с той же уверенностью, что и агент, переименовывающий переменную.
Ничто не проверяет, что чек-лист был выполнен. «Запусти
npm testперед сдачей» — это рекомендация, а не шлюз.
Conductor делает эти конвенции исполняемыми — без необходимости менять что-либо в агентных инструментах. Он поставляется как стандартный MCP-сервер, поэтому всё, что говорит по MCP, бесплатно получает компиляцию контракта, обнаружение навыков и шлюзование решений.
Related MCP server: @event4u/agent-config
The text
MCP client (Claude Code / Cursor / Copilot / ...)
│ stdio (JSON-RPC, MCP)
▼
┌────────────────────────────────────────────────┐
│ TypeScript front end (src/) │
│ contract/parser.ts AGENTS.md → contract │
│ skills/loader.ts SKILL.md discovery │
│ server.ts 7 MCP tools │
└────────────────┬───────────────────────────────┘
│ newline-delimited JSON, child stdio
▼
┌────────────────────────────────────────────────┐
│ Python decision engine (engine/) │
│ bridge.py → PyPI consensus-hardening-protocol│
│ R0 gates · foundation attacks · lifecycle │
└────────────────────────────────────────────────┘Три группы возможностей:
Контракт — компилирует
AGENTS.mdв структурированную миссию, непреложные правила, границы «можно/нельзя» по слоям, шлюзы верификации, рекомендации навыков и список того, что вне рамок.Навыки — обнаруживает навыки
SKILL.mdв области проекта и личной области с прогрессивным раскрытием: метаданные стоят ~100 токенов, тела загружаются только по требованию.Решения — пропускает работу через Consensus Hardening Protocol: дешёвый шлюз здравомыслия R0 до начала работы и состязательный проход атаки на основания перед блокировкой высокоставольного изменения.
Быстрый старт
npx -y @cubiczan/agent-conductor
pip install consensus-hardening-protocol # required for decision_* toolsnpm: @cubiczan/agent-conductor · PyPI: consensus-hardening-protocol
Требования: Node 23+ (выполняет TypeScript нативно) и Python 3.10+ с установленным опубликованным пакетом CHP.
git clone https://github.com/icohangar-ops/agent-conductor.git
cd agent-conductor
npm install
pip install -r engine/requirements.txt
npm test # TypeScript tests (parser, skills, live engine bridge)
npm run test:engine # Python bridge protocol tests
npm run buildРегистрация в Claude Code:
claude mcp add agent-conductor -- node /path/to/agent-conductor/dist/index.jsИли в JSON-конфигурации любого MCP-клиента:
{
"mcpServers": {
"agent-conductor": {
"command": "npx",
"args": ["-y", "@cubiczan/agent-conductor"]
}
}
}Задайте CONDUCTOR_PYTHON, если ваш Python 3 находится не в python3.
Затем, из любого проекта, в котором есть AGENTS.md:
«Загрузи агентский контракт этого проекта, перечисли его верификационные шлюзы и прогони изменение, которое я собираюсь внести, через
decision_adversary.
Справочник по инструментам
contract_load
Компилирует AGENTS.md (или CLAUDE.md) в структурированный контракт. Принимает путь к файлу или к директории проекта; по умолчанию используется текущая рабочая директория.
// input
{ "path": "examples/pipeline-pulse" }
// output (abridged — real output from the bundled example)
{
"source": "examples/pipeline-pulse/AGENTS.md",
"title": "AGENTS.md — Pipeline Pulse CRM",
"mission": "Pipeline Pulse CRM is a lightweight, local-first pipeline review dashboard...",
"rules": [
"Deterministic logic — same inputs → same scores, labels, and summaries...",
"Logic in crm.js — keep main.js thin (fetch, render, events).",
"... (6 total)"
],
"layers": [
{ "layer": "src/crm.js", "role": "Domain logic",
"do": "Deterministic scoring, filtering, summaries", "dont": "DOM manipulation" }
],
"gates": [
{ "name": "Code change checklist", "commands": ["npm test"], "notes": "" },
{ "name": "Before completion", "commands": [], "notes": "npm test — all green...\n..." }
],
"skills": [
{ "task": "CRM scoring / forecast changes", "skill": "obra/test-driven-development",
"url": "https://github.com/obra/superpowers/...", "why": "Tests-first changes to deterministic logic" }
],
"outOfScope": ["External CRM integrations (Salesforce, HubSpot, etc.)", "..."],
"sectionCount": 28
}Парсер без потерь: нераспознанные разделы сохраняются дословно, поэтому ничего в нестандартном AGENTS.md не теряется.
contract_verification
Возвращает только шлюзы верификации — именованные чек-листы и шелл-команды, которые должны выполниться до сдачи работы. Свяжите это с воркфлоу агента: выполните команды, подтвердите успех и только затем объявляйте о завершении.
skills_list
Находит навыки SKILL.md, видимые из корня проекта. Только метаданные.
// input
{ "projectRoot": "examples/pipeline-pulse" }
// output
{
"skills": [
{
"name": "pipeline-scoring",
"description": "Explain and modify scoreDealRisk weights in src/crm.js with matching test updates...",
"version": "0.1.0",
"scope": "project"
}
]
}Порядок поиска (для каждого имени навыка побеждает первое совпадение):
Приоритет | Путь | Область |
1 |
| project |
2 |
| project |
3 |
| project |
4 |
| personal |
5 |
| personal |
Область переведена: project → «проект», personal → «личный». В оригинале — Scope, а в R столбце «Область». Wait, keep table head as "Scope"? Let me check: original header row: | Priority | Path | Scope |. Translate "Priority" → «Приоритет», "Path" → «Путь», "Scope" → «Область». Row values "project" are scope category names, probably "project" и "personal". In Russian: «проект» и «личный». Wait I already put Russian without translating row values? In my draft I kept "project/personal". Better consistent: translate row values as «проект», «личный» but to minimize deviation, keep original English? Hmm.
instruction: translate prose. Tables are not code. I'd translate row values. But note in table cells reading values "project" / "personal" acceptable to translate. Because these are scope delimiters. I choose to translate to "проект" and "личный".
Wait, I wrote backticks in the pipeline draft. Let me decide final:
Приоритет | Путь | Область |
1 |
| проект |
2 |
| проект |
3 |
| проект |
4 |
| личная |
5 |
| личное |
Hmm "личная" adjective. Better "личный". Use "проект" and "личный".
Done.
skill_load
Загружает полное тело SKILL.md для одного именованного навыка — вторая, по требованию, половина прогрессивного раскрытия. Вызывайте её, только когда задача соответствует описанию навыка.
decision_gate
Шлюз R0 протокола Consensus Hardening Protocol: самая дешёвая и наиболее высокодревная проверка, выполняемая до начала работы.
// input
{ "solvable": true, "scoped": false, "valid": true, "worth_it": true }
// output
{ "verdict": "HALT", "results": { "Solvable": "PASS", "Scoped": "FATAL", "Valid": "PASS", "Worth_it": "PASS" } }Любой ответ FATAL останавливает процесс: остановитесь и перефразируйте постановку, прежде чем сжечь токены на проблему, которая не очерчена, не понята или не стоит решения.
decision_adversary
Одноразовый состязательный проход для высокорисковых изменений: CHP атакует основания утверждения, оценивает их по шкале 0–100 и возвращает выводы «адвоката дьявола» плюс статус сессии.
// input
{
"claim": "Change scoreDealRisk stale-activity weight from 20 to 30",
"context": "Tests updated; label distribution checked against fixture"
}
// output
{
"status": "EXPLORING", // or HALT / REFRAME_REQUIRED
"foundation_score": 77,
"findings": [
"Treat every financial number as unverified until tied to source data.",
"Require explicit flip criteria for any provisional recommendation."
],
"verification_failures": ["PENDING third-party validation"],
"report": "## TriangulationRunner Adversary Pass\n..."
}Статусы соответствуют жизненному циклу решений CHP (EXPLORING → PROVISIONAL_LOCK → LOCKED, с выходами HALT и REFRAME_REQUIRED): EXPLORING означает, что утверждение пережило атаку и работу можно продолжать к закреплению; HALT/REFRAME_REQUIRED — основания не прошли.
engine_status
Проверка работоспособности дочернего процесса Python-движка. Возвращает { ok, engine: "chp", version }.
Что распознаёт парсер
contract_load основан на конвенциях, а не на схеме. Он извлекает те паттерны, которые AGENTS.md-файлы в дикой натуральности реально используют:
Поле контракта | Конвенция-источник |
| Первый раздел |
| Элементы списка в |
| Первая таблица с колонкой |
| Шелл-кода-блоки + элементы списка под заголовками «checklist» / «verification» / «before-completion» |
| Таблицы с колонками |
| Список под заголовком «вне рамок» / «не-цели» |
| Всё дословно — без потерь запасной вариант |
Let me fix typos: "Основы", "Fields".
Also "sections" — "Everythingdosl".
I will correct in final.
Продолжение после таблицы:
Заголовки внутри код-ограждений игнорируются; таблицы выносливы к выделению в заголовках; из извлечённого текста удаляются ссылки и выделение.
Пишем навык
Навык — это каталог, содержащий SKILL.md с YAML-frontmatter:
---
name: pipeline-scoring
description: Explain and modify scoreDealRisk weights in src/crm.js with matching test updates. Use when changing deal risk scoring, risk labels, or forecast thresholds.
version: 0.1.0
tools: [Read, Edit, Bash]
---
# Pipeline Scoring
Step-by-step instructions the agent follows when the task matches...Планка качества (унаследована от стандартов awesome-agent-skills): описание в третьем лице с подходящими ключевыми словами, метаданные около 100 токенов, тело до 500 строк, никаких машин-специфічних абсолютных путей, объявление изучаемых навы работающих только тем инструментам, которые нужны навыку.
Приложенный пример — examples/pipeline-pulse — это полный реально существующий AGENTS.md плюс навык в области проекта, и именно загружается тестовым набором.
Структура проекта
.
├── AGENTS.md # This repo's own contract (compiles with itself)
├── ARCHITECTURE.md # Design decisions and component detail
├── src/
│ ├── index.ts # stdio entrypoint
│ ├── server.ts # MCP server: 7 tools
│ ├── contract/ # AGENTS.md → AgentContract compiler
│ ├── skills/ # SKILL.md loader + registry
│ ├── engine/chpBridge.ts # Python engine client
│ └── utils/logger.ts # stderr-only logging (stdout is the transport)
├── engine/
│ ├── bridge.py # JSON-over-stdio router → PyPI `chp`
│ ├── requirements.txt # consensus-hardening-protocol pin
│ ├── NOTICE.md # attribution for the published engine
│ └── test_bridge.py # protocol tests
├── examples/pipeline-pulse/ # real AGENTS.md fixture + example skill
└── test/ # node:test suites (run the .ts directly)Разработка
pip install -r engine/requirements.txt
npm test # TypeScript tests — includes a live engine round-trip
npm run test:engine # Python-side protocol tests
npx tsc --noEmit # type check
npm run build # emit dist/
npm run dev # run the server from source (Node type stripping)Правила (полный набор — в AGENTS.md этого репозитория):
stdout священно — им владеет MCP-транспорт; все логирование на столько на
stderrренд.Никаких новых Node-зависимостей —значит
@modelcontextprotocol/sdkиzod; markdown и frontmatter остаются собственной реализацией. CHP — PyPI-зависимость.Только стираемый TypeScript — исходный код должен эксплуатироваться под встроенным стиранием типов Node (без enum, без параметерических свойств).
CHP через PyPI — установите
consensus-hardening-protocol; не переводите код в собственный подengine/. Исправления протокола — апстриму.Python 3.10+ — требует опубликованным пакетом.
Roadmap
Версия | Тема | Объём |
v0.2 | Контроль | Выполнять |
v0.3 | Оркестрация | Выставить |
v0.4 | Реестр | Установка проверенных навыков из удалённых каталогов (формат awesome-agent-skills) с запросами на ревью источника |
Происхождение
Conductor намеренно переиспользует проверенные компоненты, не переписывая их:
Компонент | Источник | Лицензия |
Дейджин решений (PyPI) | MIT | |
MCP-сервер + форма реестра | MIT | |
Стандарты качества навыков | — | |
Пример-фикстура | Операционный справочник Pipeline Pulse CRM | fixture |
Двухъязычный дизайн — см. engine/NOTICE.md и ARCHITECTURE.md.
Cubiczan stack
| Управление | consensus-hardening-protocol · agent-conductor · compliance-as-code-agent · cleanmandate | | Платформа | cubiczan-mcp-server · operational-intelligence · software-factory |
Conductor компилирует AGENTS.md + SKILL.md в инструменты MCP и направляет критически важные решения через CHP — ту же модель блокировки, которую Metabocommand использует для согласования финансовых операций.
License
MIT — см. LICENSE. Вендорные компоненты сохраняют свои исходные лицензии MIT.
Available Tools
7 toolscontract_loadA
Compile an AGENTS.md operating manual into a structured agent contract: mission, non-negotiable rules, layer responsibilities, verification gates, recommended skills, and out-of-scope list. Pass a file path or a project directory (defaults to the current working directory).
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | AGENTS.md path or project root |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It explicitly states the action (compile) and the output structure (mission, rules, etc.), implying a read-only operation without destructive effects. It does not detail error handling or side effects, but given the simple nature, the description adds sufficient context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the core purpose and output, the second gives parameter usage. It is front-loaded, free of fluff, and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has one parameter, no output schema, and no annotations. The description covers the trigger (AGENTS.md), the processing (compile), and the output outline (structured contract with listed sections). It could explicitly state the return format, but the listed components imply what the contract contains, making it sufficiently complete for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (path described as 'AGENTS.md path or project root'). The description enriches this by clarifying that 'path' accepts a file or directory and defaults to the current working directory, providing practical usage details not present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Compile') and resource ('AGENTS.md operating manual') to state exactly what the tool does: transforms a file into a structured agent contract with enumerated components (mission, rules, responsibilities, gates, skills, out-of-scope). This clearly distinguishes it from siblings like contract_verification or skills_list, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear invocation context: 'Pass a file path or a project directory (defaults to the current working directory).' This tells the agent how to supply input and what the default is, so it can decide when to call the tool. However, it does not explicitly mention alternatives or when not to use it, though the purpose is distinct enough to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contract_verificationA
Return the verification gates from a project's agent contract — the named checklists and shell commands that must pass before work is handed off. Run these and confirm success before declaring any task complete.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | AGENTS.md path or project root |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It states the tool returns gates and instructs the agent to run them, which implies the agent needs to execute commands. However, it does not disclose whether the tool itself executes anything, whether there are side effects, or what happens if gates fail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and every clause adds value: what the tool returns, what those returns consist of, and when/how to use them. There is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with no output schema, the description covers the return value, the usage timing, and the required action. It could be slightly richer about default path behavior or failure semantics, but it is arguably sufficient for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, as the 'path' parameter is described as 'AGENTS.md path or project root'. The description adds no parameter details, but the schema already provides sufficient meaning, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Return'), names the exact resource ('verification gates from a project's agent contract'), and elaborates what those gates are ('named checklists and shell commands'). This clearly distinguishes the tool from siblings like contract_load, which would handle contract loading, and decision_gate, which evaluates a decision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage context: run these gates and confirm success before declaring a task complete. It does not explicitly mention alternatives or exclusions, but the 'before work is handed off' phrase and sibling names make the appropriate use case evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
decision_adversaryA
Run a one-shot Consensus Hardening Protocol adversarial pass against a claim or proposed change: CHP attacks its foundations, scores them 0-100, and returns findings plus a session status (EXPLORING / HALT / REFRAME_REQUIRED). Use before locking any high-stakes decision.
| Name | Required | Description | Default |
|---|---|---|---|
| claim | Yes | The claim or decision to attack | |
| context | No | Supporting context for the claim | |
| high_stakes | No | Default true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses one-shot behavior, the adversarial mechanism, and the statuses returned. However, it does not explain side effects, required permissions, or whether the pass modifies any state, which leaves some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The first sentence states the action and protocol; the second gives a crisp usage rule. Every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description adequately outlines what is returned ('findings plus a session status') and lists the possible statuses. It could be slightly richer on the response shape or effect of high_stakes, but it is sufficient for a 3-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no extra parameter-level detail beyond the schema; it mentions 'claim or proposed change' and 'high-stakes decision' but does not elaborate on the context or high_stakes parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Run') and a concrete resource ('Consensus Hardening Protocol adversarial pass against a claim or proposed change'), and it names the core output (scores, findings, session status). This clearly distinguishes the tool from siblings like decision_gate or engine_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: 'Use before locking any high-stakes decision.' It does not explicitly mention when not to use it or name alternatives, but the guidance is specific enough to orient an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
decision_gateA
Run the Consensus Hardening Protocol R0 gate on a proposed decision: is it solvable, scoped, valid, and worth making at all? Any FATAL answer returns HALT — stop and reframe before doing the work.
| Name | Required | Description | Default |
|---|---|---|---|
| valid | Yes | Is the current state accurately understood? | |
| scoped | Yes | Is the scope explicitly bounded? | |
| solvable | Yes | Can this problem actually be solved? | |
| worth_it | Yes | Do the stakes justify the work? |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It discloses the HALT behavior on FATAL answers, but does not explain what happens when all criteria pass, nor does it define 'FATAL' or the output format. This leaves significant behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the purpose, and every clause earns its place. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple gate with no output schema, the description could be more complete by stating the pass condition and output behavior. It implies all four must be true to proceed, but does not explicitly describe the success return value or the meaning of FATAL. Available structured data is minimal, so the description needs to do more.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all four boolean parameters clearly (100% coverage). The description repeats the names but adds no extra semantic detail beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Run') and names a distinct resource ('Consensus Hardening Protocol R0 gate'), clearly listing the four evaluation criteria (solvable, scoped, valid, worth it). This distinguishes it from sibling tools like decision_adversary by framing it as a gate that halts work.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool ('on a proposed decision', 'before doing the work') and hints at the consequence of a FATAL result (stop and reframe). It does not explicitly compare to alternatives, but the timing guidance is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
engine_statusA
Health/readiness probe for the CHP decision engine (Python subprocess). By default returns a cheap readiness snapshot (running, last exit code, restart-backoff state) WITHOUT spawning Python. Pass probe=true to also issue a live ping that warms/spawns the subprocess.
| Name | Required | Description | Default |
|---|---|---|---|
| probe | No | Issue a live ping (spawns the subprocess). Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the default mode does NOT spawn Python (a performance consideration), while probe=true will spawn/warm the subprocess. This is valuable behavioral context beyond what annotations would provide (none are provided). It clearly communicates the side effects of probe=true without any contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, concise, and front-loaded with the core purpose. Every sentence adds value: the first defines the tool, the second explains the parameter distinction and behavioral implications. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema, no nested objects), the description is complete. It covers the default behavior, the alternative with probe=true, and the performance implication. There's no missing information that would prevent correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the 'probe' parameter with 100% coverage, so the baseline is 3. The description adds context that probe=true issues a live ping and spawns the subprocess, but this largely reinforces what the schema says. It doesn't add new syntax or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is a health/readiness probe for the CHP decision engine, distinguishing it from sibling tools that load contracts, list skills, or make decisions. It specifies the resource (CHP decision engine subprocess) and the action (health/readiness probe), making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the default behavior (cheap readiness snapshot without spawning Python) and when to use probe=true for a live ping. While it implies that probe=false is for quick checks and probe=true for when a live response is needed, it doesn't explicitly contrast with alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skill_loadA
Load the full SKILL.md body for a named skill — the on-demand half of progressive disclosure. Call only when the current task matches the skill's description.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Skill name as returned by skills_list | |
| projectRoot | No | Project root (defaults to cwd) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the transparency burden. It communicates that this is an on-demand load operation and ties it to progressive disclosure, but it does not disclose return behavior, error/not-found handling, or explicit read-only guarantees.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, purposeful sentences with no filler. The core action, context, and when-to-use guidance are all packed efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter loader tool with no output schema, the description is adequate: it explains what is loaded, when to call it, and how it fits into the progressive disclosure flow. A small gap remains regarding what the response contains, but 'full SKILL.md body' conveys the essential outcome.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters. The description adds minimal parameter-specific meaning beyond context ('named skill' and matching behavior), which aligns with the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Load the full SKILL.md body') on a specific resource ('for a named skill'). It also distinguishes itself from siblings like skills_list by describing this as the on-demand half of progressive disclosure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage condition: 'Call only when the current task matches the skill's description.' It does not explicitly name alternatives such as skills_list for listing skills, but the progressive-disclosure context implies the distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skills_listA
Discover SKILL.md skills visible from a project root (project-scope .conductor/.claude/.cursor skill dirs, then personal ones). Returns metadata only (~100 tokens per skill); use skill_load for the full body.
| Name | Required | Description | Default |
|---|---|---|---|
| projectRoot | No | Project root (defaults to cwd) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that it returns only metadata (~100 tokens per skill) and covers scope resolution order, which is valuable behavioral context. However, no annotations are provided, and the description does not mention whether this performs a read-only operation, whether it follows symlinks, or how errors are handled if the project root is invalid. Still, for a listing tool, the scope and return-type disclosure is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and front-loaded with the core purpose. It covers scope, return type, and the alternative tool in no more words than necessary. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only discovery tool with one optional parameter and no output schema, the description is complete enough: it states scope, return size, and the next step (skill_load). The only minor gap is lack of detail about exact directory patterns, but that is not essential for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter, projectRoot, with 100% schema description coverage ('Project root (defaults to cwd)'). The tool description adds the context that the root is used to discover relevant skill directories, but the schema already explains the parameter well. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: discover SKILL.md skills from a project root with specific scope details (project vs personal). It also distinguishes itself from the sibling tool skill_load by noting this returns metadata only, which helps the agent understand the difference between listing and loading.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use this tool: to discover skills visible from a project root, and explicitly tells the agent to use skill_load for the full body. This provides clear usage guidance and distinguishes it from the sibling skill_load without ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v0.1.0- First observed
contract_load - First observed
contract_verification - First observed
decision_adversary - First observed
decision_gate - First observed
engine_status - First observed
skill_load - First observed
skills_list
TDQS
Scored across 7 tools
Each tool targets a distinct responsibility: contract compilation, verification gate retrieval, skill discovery, skill body loading, decision gating, adversarial review, and engine health. Even the two decision tools are clearly separated by depth: one is a lightweight pre-check, the other is a full adversarial pass.
The naming generally follows a resource_prefix_action pattern (contract_load, skills_list, decision_gate), but there are minor inconsistencies: contract_verification and engine_status are noun-phrase rather than verb-action, and skills_list/skill_load mix plural and singular forms. The pattern is still readable and predictable overall.
Seven tools is well-scoped for the server's purpose: two for contracts, two for skills, two for decision support, and one operational health probe. Each tool fills a distinct slot with no obvious bloat or redundancy.
The core workflows are covered: contracts can be loaded and verified, skills can be discovered and loaded, and decisions can be gated and adversarial-tested. Minor gaps exist, such as the lack of a tool to explicitly execute verification gates or persist/review decision outcomes, but agents can work around these with shell commands and existing server behavior.
Maintenance
Related MCP Connectors
Sovereign Agent OS — Persistent Memory, Governance & Compliance for AI Agents.
Multi-agent governance: task orchestration, compliance, decision validation, and ML predictions.
LLM Orchestration Agent 2
AI agent skills marketplace — token-efficient skill search & execution
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables offline AI agent automation with embedded local LLM (Qwen 2.5), sandboxed file operations through AgentFS, and dynamic skill loading. Exposes capabilities via MCP with tri-state safety guards for private, air-gapped environments without network connectivity or API costs.-

@event4u/agent-configofficial
AlicenseAqualityAmaintenanceUniversal AI Agent OS — governed skills, rules, and commands for AI coding assistants (Claude Code, Augment, Cursor, Copilot, Windsurf). Read-only MCP bridge serves prompts and resources from a release-pinned content bundle.25863 npm11MIT- AlicenseNot gradedqualityCmaintenanceMulti-server MCP aggregator with 266 skills, an orchestration runtime, fleet/claims coordination, and hook-driven session governance for autonomous Claude/Cursor/Gemini agent runs.3MIT
- AlicenseNot gradedqualityDmaintenanceOrchestrates AI agents through structured markdown documents, enabling multi-agent workflows with automatic context injection and workflow management.14 npm5MIT