Agent Conductor
Agent Conductor
AGENTS.md を入力に、統制されたエージェントチームを出力に。
Agent Conductor は、コーディングエージェントエコシステムが収束した2つの規約 — AGENTS.md オペレーティングマニュアルと SKILL.md スキル — を受動的なドキュメントから能動的なオーケストレーションレイヤーに変える MCP サーバーであり、コンセンサス強化された意思決定エンジンが高リスクな変更をゲートします。
ミラー: Cubiczan/agent-conductor · codeberg.org/cubiczan/agent-conductor · icohangar-ops/agent-conductor
ライセンス: MIT
ステータス: v0.1 — 動作するスキャフォールド; ロードマップ を参照
問題
真面目なエージェントツールはすべて — Claude Code、Cursor、Copilot、Codex、Gemini CLI — リポジトリルートの AGENTS.md と SKILL.md ファイルのカタログを読み取ります。しかし、両方の規約は信頼任せの散文です:
契約をコンパイルするものは何もありません。非交渉のルール、レイヤー境界、検証チェックリストは、エージェントが内部化するかどうかわからないマークダウンとして存在します。
決定をゲートするものは何もありません。スコアリングモデルを書き換えようとしているエージェントは、変数をリネームするエージェントと同じ自信で進みます。
チェックリストが実行されたことを検証するものは何もありません。「引き渡し前に
npm testを実行」は提案であり、ゲートではありません。
Conductor は、エージェントツールに変更を求めることなく、規約を実行可能にします。標準の MCP サーバーとして提供されるため、MCP を話すものはすべて、契約のコンパイル、スキル発見、意思決定ゲートを無料で利用できます。
Related MCP server: @event4u/agent-config
仕組み
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 │
└────────────────────────────────────────────────┘3つの機能グループ:
契約 —
AGENTS.mdを構造化されたミッション、非交渉ルール、レイヤーの do/don't 境界、検証ゲート、スキル推奨、およびスコープ外リストにコンパイルします。スキル — プロジェクトおよび個人スコープ全体で
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 buildClaude Code に登録:
claude mcp add agent-conductor -- node /path/to/agent-conductor/dist/index.jsまたは任意の MCP クライアントの JSON 設定で:
{
"mcpServers": {
"agent-conductor": {
"command": "npx",
"args": ["-y", "@cubiczan/agent-conductor"]
}
}
}Python 3 が python3 以外の場所にある場合は、CONDUCTOR_PYTHON を設定してください。
次に、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 |
| プロジェクト |
2 |
| プロジェクト |
3 |
| プロジェクト |
4 |
| 個人 |
5 |
| 個人 |
skill_load
指定されたスキルの完全な SKILL.md 本文を読み込みます — 段階的開示のオンデマンド部分。タスクがスキルの説明に一致する場合にのみ呼び出してください。
decision_gate
Consensus Hardening Protocol の R0 ゲート: 最も安価で最も効果の高いチェックで、作業を行う前に実行します。
// 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 ファイルのパターンを抽出します。
契約フィールド | ソース規約 |
| 最初の |
|
|
| アーキテクチャ風の見出しの下にある |
| チェックリスト / 検証 / 完了前の見出しの下にあるシェルコードブロック + リスト項目 |
|
|
| スコープ外 / 非目標の見出しの下のリスト |
| すべてをそのまま — ロスレスフォールバック |
コードフェンス内の見出しは無視されます。テーブルはヘッダー内の強調を許容します。マークダウンリンクと強調は抽出テキストから削除されます。
スキルの作成
スキルは、YAML フロントマターを含む SKILL.md を含むディレクトリです:
---
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のみ。マークダウン/フロントマターは手書きのまま。CHP は PyPI 依存です。消去可能な TypeScript のみ — ソースは Node の型ストリッピングで実行できる必要があります (enum なし、パラメータプロパティなし)。
CHP は PyPI 経由 —
consensus-hardening-protocolをインストールしてください。engine/の下に再ベンダーしないでください。プロトコルの修正は上流に属します。Python 3.10+ — 公開パッケージに必要です。
ロードマップ
バージョン | テーマ | スコープ |
v0.2 | 強制 |
|
v0.3 | オーケストレーション | MCP 上で |
v0.4 | レジストリ | リモートカタログ (awesome-agent-skills 形式) から審査済みスキルをソースレビュープロンプト付きでインストール |
由来
Conductor は、書き直すのではなく、実績のあるコンポーネントを意図的に再利用します:
コンポーネント | ソース | ライセンス |
意思決定エンジン (PyPI) | MIT | |
MCP サーバー + レジストリ形状 | MIT | |
スキル品質標準 | — | |
例のフィクスチャ | Pipeline Pulse CRM 運用マニュアル | fixture |
2言語設計については、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 が金融承認に使用しているのと同じロックモデルです。
ライセンス
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