Agent Conductor
Supports mirroring the agent-conductor repository on Codeberg, indicating integration with Codeberg-hosted projects for contract and skill management.
Integrates with Git repositories to read AGENTS.md operating manuals and SKILL.md skills, turning them into an executable orchestration layer for governing agent teams.
Provides integration with GitHub repositories, allowing the MCP server to discover and load AGENTS.md and SKILL.md files from project repositories to enforce contracts and skills.
Agent Conductor
Cubiczan stack — Profile · CHP · You are here:
agent-conductor
AGENTS.md in, governed agent team out.
Agent Conductor is an MCP server that turns
the two conventions the coding-agent ecosystem has converged on —
AGENTS.md operating manuals and SKILL.md skills — from
passive documentation into an active orchestration layer, with a
consensus-hardened decision engine gating high-stakes changes.
Mirrors: Cubiczan/agent-conductor · codeberg.org/cubiczan/agent-conductor · icohangar-ops/agent-conductor
License: MIT
Status: v0.1 — working scaffold; see Roadmap
The problem
Every serious agent tool — Claude Code, Cursor, Copilot, Codex, Gemini CLI —
now reads an AGENTS.md at the repo root and a catalog of SKILL.md files.
But both conventions are honor-system prose:
Nothing compiles the contract. The non-negotiable rules, layer boundaries, and verification checklists live as markdown the agent may or may not internalize.
Nothing gates the decision. An agent that's about to rewrite your scoring model proceeds with the same confidence as one renaming a variable.
Nothing verifies the checklist ran. "Run
npm testbefore handing off" is a suggestion, not a gate.
Conductor makes the conventions executable — without asking any agent tool to change. It ships as a standard MCP server, so anything that speaks MCP gets contract compilation, skill discovery, and decision gating for free.
Related MCP server: @event4u/agent-config
How it works
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 │
└────────────────────────────────────────────────┘Three capability groups:
Contract — compile an
AGENTS.mdinto structured mission, non-negotiable rules, layer do/don't boundaries, verification gates, skill recommendations, and an out-of-scope list.Skills — discover
SKILL.mdskills across project and personal scopes with progressive disclosure: metadata costs ~100 tokens, bodies load only on demand.Decision — gate work through the Consensus Hardening Protocol: a cheap R0 sanity gate before work starts, and an adversarial foundation-attack pass before a high-stakes change locks.
Quick start
npx -y @cubiczan/agent-conductor
# decision_* tools also need:
# pip install -r engine/requirements.txt # after cloning, or use the published package's engine/Requirements: Node 23+ (runs TypeScript natively) and Python 3.10+ with the published CHP package installed.
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 buildRegister with Claude Code:
claude mcp add agent-conductor -- node /path/to/agent-conductor/dist/index.jsOr in any MCP client's JSON config:
{
"mcpServers": {
"agent-conductor": {
"command": "node",
"args": ["/path/to/agent-conductor/dist/index.js"]
}
}
}Set CONDUCTOR_PYTHON if your Python 3 lives somewhere other than python3.
Then, from any project that has an AGENTS.md:
"Load this project's agent contract, list its verification gates, and run a decision_adversary pass on the change I'm about to make."
Tool reference
contract_load
Compile an AGENTS.md (or CLAUDE.md) into a structured contract. Accepts a file path or a project directory; defaults to the current working directory.
// 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
}The parser is lossless: sections it doesn't recognize are preserved verbatim, so nothing in an unconventional AGENTS.md is dropped.
contract_verification
Returns only the verification gates — the named checklists and shell commands that must pass before work is handed off. Pair it with your agent's workflow: run the commands, confirm success, then declare done.
skills_list
Discover SKILL.md skills visible from a project root. Metadata only.
// 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"
}
]
}Search order (first hit per skill name wins):
Priority | Path | Scope |
1 |
| project |
2 |
| project |
3 |
| project |
4 |
| personal |
5 |
| personal |
skill_load
Load the full SKILL.md body for one named skill — the on-demand half of progressive disclosure. Call it only when the task matches the skill's description.
decision_gate
The Consensus Hardening Protocol R0 gate: the cheapest, highest-leverage check, run before doing the work.
// input
{ "solvable": true, "scoped": false, "valid": true, "worth_it": true }
// output
{ "verdict": "HALT", "results": { "Solvable": "PASS", "Scoped": "FATAL", "Valid": "PASS", "Worth_it": "PASS" } }Any FATAL answer halts: stop and reframe before burning tokens on a
problem that isn't scoped, isn't understood, or isn't worth solving.
decision_adversary
A one-shot adversarial pass for high-stakes changes: CHP attacks the claim's foundations, scores them 0–100, and returns devil's-advocate findings plus a session status.
// 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..."
}Statuses map to the CHP decision lifecycle
(EXPLORING → PROVISIONAL_LOCK → LOCKED, with HALT and
REFRAME_REQUIRED exits): EXPLORING means the claim survived the attack
and work may proceed toward a lock; HALT/REFRAME_REQUIRED mean the
foundations failed.
engine_status
Health-check the Python engine subprocess. Returns
{ ok, engine: "chp", version }.
What the parser recognizes
contract_load is convention-based, not schema-based. It extracts the
patterns AGENTS.md files in the wild actually use:
Contract field | Source convention |
| First |
| List items under |
| First table with a |
| Shell code blocks + list items under checklist / verification / before-completion headings |
| Tables with |
| List under an out-of-scope / non-goals heading |
| Everything, verbatim — the lossless fallback |
Headings inside code fences are ignored; tables tolerate emphasis in headers; markdown links and emphasis are stripped from extracted text.
Writing skills
A skill is a directory containing SKILL.md with 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...Quality bar (inherited from the awesome-agent-skills standards): third-person description with matchable keywords, metadata around 100 tokens, body under 500 lines, no machine-specific absolute paths, declare only the tools the skill needs.
The bundled example — examples/pipeline-pulse — is a complete real-world AGENTS.md plus a project-scoped skill, and is what the test suite compiles.
Project structure
.
├── 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)Development
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)House rules (the full set is in this repo's own AGENTS.md):
stdout is sacred — the MCP transport owns it; all logging goes to stderr on both sides of the bridge.
Zero new Node runtime dependencies — only
@modelcontextprotocol/sdkandzod; markdown/frontmatter stay hand-rolled. CHP is a PyPI dep.Erasable TypeScript only — source must run under Node's type stripping (no enums, no parameter properties).
CHP via PyPI — install
consensus-hardening-protocol; do not re-vendor underengine/. Protocol fixes belong upstream.Python 3.10+ — required by the published package.
Roadmap
Version | Theme | Scope |
v0.2 | Enforcement | Execute |
v0.3 | Orchestration | Expose |
v0.4 | Registry | Install vetted skills from remote catalogs (awesome-agent-skills format) with source-review prompts |
Provenance
Conductor deliberately reuses proven components rather than rewriting them:
Component | Source | License |
Decision engine (PyPI) | MIT | |
MCP server + registry shape | MIT | |
Skill quality standards | — | |
Example fixture | Pipeline Pulse CRM operating manual | fixture |
See engine/NOTICE.md and ARCHITECTURE.md for the two-language design.
Cubiczan stack
| Governance | consensus-hardening-protocol · agent-conductor · compliance-as-code-agent · cleanmandate | | Platform | cubiczan-mcp-server · operational-intelligence · software-factory |
Conductor compiles AGENTS.md + SKILL.md into MCP tools and routes high-stakes decisions through CHP — the same lock model Metabocommand uses for finance approvals.
License
MIT — see LICENSE. Vendored components retain their original MIT licenses.
Maintenance
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.6202,3397MIT- 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.174MIT
Related MCP Connectors
Six-gate governance for AI agents: PROCEED/PAUSE/HALT decisions with hash-chained audit trails.
Sovereign Agent OS — Persistent Memory, Governance & Compliance for AI Agents.
Control plane for autonomous software labor. Agents claim objectives over MCP with audit trail.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/icohangar-ops/agent-conductor'
If you have feedback or need assistance with the MCP directory API, please join our Discord server