PHPackages                             rhazen35/agent-orchestration - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. rhazen35/agent-orchestration

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

rhazen35/agent-orchestration
============================

A tool-agnostic agent orchestration setup for spec-driven development. Provides skills, steering, templates, and a factory pipeline workflow.

v0.0.3(3mo ago)03MIT

Since Mar 26Pushed 2mo agoCompare

[ Source](https://github.com/rhazen35/agent-orchestration)[ Packagist](https://packagist.org/packages/rhazen35/agent-orchestration)[ Docs](https://github.com/rhazen35/agent-orchestration)[ RSS](/packages/rhazen35-agent-orchestration/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (3)Dependencies (1)Versions (5)Used By (0)

[![Agent Orchestration](assets/header.png)](assets/header.png)

rhazen35/agent-orchestration
============================

[](#rhazen35agent-orchestration)

**A tool-agnostic agent orchestration setup for spec-driven development.**

Give your AI agent a structured, auditable factory pipeline — from vague idea to shipped code — without burning your token budget.

[![License: MIT](https://camo.githubusercontent.com/08cef40a9105b6526ca22088bc514fbfdbc9aac1ddbf8d4e6c750e3a88a44dca/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d626c75652e737667)](LICENSE)[![Packagist](https://camo.githubusercontent.com/150edffe428392b6d2df43174c9498e1077f88da8ab013e062127a99a8d50daf/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7268617a656e33352f6167656e742d6f726368657374726174696f6e)](https://packagist.org/packages/rhazen35/agent-orchestration)[![npm](https://camo.githubusercontent.com/72b3e0a022ff90bf886941aeb14e0841d160126509b956010cb3c0fac6eb57cb/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f7268617a656e33352d6167656e742d6f726368657374726174696f6e)](https://www.npmjs.com/package/rhazen35-agent-orchestration)

---

What is this?
-------------

[](#what-is-this)

This package provides a complete **Factory Pipeline** workflow for AI agents. It includes skills, steering rules, templates, and governance guardrails — all as plain markdown files that any agent can read, regardless of language or tooling.

No runtime code. No dependencies. Works with PHP, Go, Rust, Python, Node, or anything else.

---

The Factory Pipeline
--------------------

[](#the-factory-pipeline)

> Every phase is **manually triggered**. Nothing runs automatically. You stay in control, and your token budget stays intact.

```
Design → Queue → Production → Sentinel → Quality Control → Archiving

```

### 🧠 Phase 1 — Design

[](#-phase-1--design)

**Trigger:** "I want to build X" or "Start a new spec for Y"

The `spec-architect` skill orchestrates sub-skills in sequence:

Sub-skillWhat it does`discovery`Maps the codebase, checks cache before re-scanning`mcp-orchestrator`Discovers available MCP tools, enriches spec with live data`grill-me`Challenges assumptions, provides recommended answers`acceptance-criteria-generator`Drafts requirements and testable acceptance criteria**Output:** signed-off `plan/{namespace}/plan.md`**Gate:** you must approve the plan before anything enters the inbox.

---

### 📥 Phase 2 — Queue

[](#-phase-2--queue)

**Trigger:** "queue tasks" or "load inbox"

Tasks are loaded into `inbox/{namespace}/tasks.md` in **batches of max 3** (the Hydration Limit). The next batch only loads after a slot opens. A flawed plan fails fast and cheap, not after 20 API calls.

**Gate:** confirm the inbox before production starts.

---

### ⚙️ Phase 3 — Production

[](#️-phase-3--production)

**Trigger:** "process next task"

The `task-processor` runs with **JIT context** — it only reads the task, the file it's editing, and `steering/principles.md`. Nothing else. Small context window, fast and cheap calls.

**Output:** task moved to `outbox/{namespace}/pending-review.md`

---

### 🛡️ Phase 3.5 — Sentinel Pre-Check

[](#️-phase-35--sentinel-pre-check)

**Trigger:** runs as part of "review", before the quality reviewer

The `sentinel` catches cheap failures before they reach the expensive inspector:

- Syntax errors or lint failures
- Ghost comments (`TODO`, `FIXME`, unfinished notes)
- Changelog format errors
- Scope creep (files touched outside the task's scope)

**Fail:** task returns to `inbox/` with `[SENTINEL_FAIL]`. Quality reviewer is never called.

---

### 🔍 Phase 4 — Quality Control

[](#-phase-4--quality-control)

**Trigger:** "review"

The `quality-reviewer` performs deep reasoning against `acceptance-criteria.md` and `steering/principles.md`. Also runs `integrity-check` for ghost features and architectural drift.

ResultAction✅ PassTask moves to `outbox/{namespace}/completed.md`❌ FailTask returns to `inbox/` with `[REJECTION NOTE]` + incremented `[LOOP COUNT]`> If a task is rejected **4 times**, the pipeline locks. Human intervention required.

---

### 📦 Phase 5 — Archiving

[](#-phase-5--archiving)

**Trigger:** "archive"

The `changelog-architect` skill:

1. Appends an entry to `CHANGELOG.md` under `## [Unreleased]`
2. Appends the task + review notes to `archive/{namespace}/decision-log.md`
3. Cleans up `outbox/{namespace}/completed.md`
4. Invokes `monitor` to update `dashboard.md`

---

Quick Reference
---------------

[](#quick-reference)

CommandPhase triggered"I want to build X"🧠 Phase 1: Design"Queue tasks"📥 Phase 2: Queue"Process next task"⚙️ Phase 3: Production"Review"🛡️ + 🔍 Sentinel → Quality Control"Archive"📦 Phase 5: Archiving---

Installation
------------

[](#installation)

This package contains no runtime code — only markdown files consumed by your AI agent. It works with any language or stack.

### PHP — Composer

[](#php--composer)

```
composer require rhazen35/agent-orchestration
```

Copy the directories into your project root:

```
cp -r vendor/rhazen35/agent-orchestration/skills ./skills
cp -r vendor/rhazen35/agent-orchestration/steering ./steering
cp -r vendor/rhazen35/agent-orchestration/templates ./templates
cp -r vendor/rhazen35/agent-orchestration/records ./records
```

### Node — npm

[](#node--npm)

```
npm install rhazen35-agent-orchestration
```

```
cp -r node_modules/rhazen35-agent-orchestration/skills ./skills
cp -r node_modules/rhazen35-agent-orchestration/steering ./steering
cp -r node_modules/rhazen35-agent-orchestration/templates ./templates
cp -r node_modules/rhazen35-agent-orchestration/records ./records
```

### Go, Rust, Python, or any other language — Git Submodule

[](#go-rust-python-or-any-other-language--git-submodule)

```
git submodule add https://github.com/rhazen35/agent-orchestration .agent
```

Point your agent tooling at `.agent/steering/`, `.agent/skills/`, etc.

Update to the latest version:

```
git submodule update --remote .agent
```

Clone a project that uses this as a submodule:

```
git clone --recurse-submodules
```

### Quick Start (no package manager)

[](#quick-start-no-package-manager)

```
git clone https://github.com/rhazen35/agent-orchestration .agent
```

---

Namespacing
-----------

[](#namespacing)

Every specification gets its own namespace folder — a short kebab-case name applied consistently across all directories.

DirectoryNamespaced pathSpecification`specification/{namespace}/`Plan`plan/{namespace}/`Inbox`inbox/{namespace}/tasks.md`Outbox`outbox/{namespace}/`Records`records/{namespace}/`Archive`archive/{namespace}/`---

Governance
----------

[](#governance)

`steering/governance.md` defines hard limits no agent can override:

RuleLimitInbox hydrationMax 3 active tasks at onceLoop limitTask rejected 4 times → pipeline locksToken budget50,000 tokens per run → Soft HaltCooldown5 consecutive completions → wait for "Continue"Discovery cacheNever re-scan if fingerprint is currentJIT contextWorker reads only what it needs---

Dashboard
---------

[](#dashboard)

`dashboard.md` is the control tower. Check it before starting any work.

StatusMeaning🟢 OPERATIONALAll clear🟡 THROTTLEDWait for human `[CONTINUE]`🔴 CIRCUIT BREAKER TRIPPEDDo not start work — human reset required---

Skills Reference
----------------

[](#skills-reference)

SkillPurpose`spec-architect`End-to-end spec creation`discovery`Codebase mapping with caching`mcp-orchestrator`Dynamic MCP tool discovery and data enrichment`grill-me`Assumption stress-testing`acceptance-criteria-generator`Requirements → testable criteria`task-processor`JIT task implementation`sentinel`Cheap pre-check before review`quality-reviewer`Deep spec + principle review`integrity-check`Drift and ghost feature detection`changelog-architect`Task archiving and changelog`monitor`Dashboard updates---

Steering Files
--------------

[](#steering-files)

Always loaded into every agent context:

FilePurpose`steering/principles.md`Core architectural constraints`steering/governance.md`Hard resource and loop limits`steering/audit-requirements.md`Requirement changes must be logged and ADR'd`steering/workflow.md`Full pipeline reference---

MCP Integration
---------------

[](#mcp-integration)

This package is designed to work with [Model Context Protocol (MCP)](https://modelcontextprotocol.io) servers out of the box. MCP tools extend the agent's capabilities beyond local file editing — enabling live database inspection, web search, API fetching, and more.

### How it works

[](#how-it-works)

The agent does not hardcode any MCP servers. Instead, it performs a **handshake** at session start:

1. Agent calls `list_tools` to discover what the host environment provides.
2. Agent matches the returned tool schemas against `steering/mcp-policy.md`.
3. Authorized tools are used purposefully — local files always take precedence.

### Capability Requirements

[](#capability-requirements)

The factory expects the host to provide tools for these capabilities:

CapabilityUsed forFallbackSearchVerify library versions, docsAsk humanFilesystemRead/write specs and inboxLocal agent toolsRuntimeRun tests and linting (Sentinel)Manual checksDatabaseInspect live schemasUse spec definitionsVersion ControlRead issues, PRs, commit historyUse `records/` and `archive/`If a capability is missing, the pipeline continues — it never blocks on absent tools.

### Tool Selection Priority

[](#tool-selection-priority)

When multiple tools fulfill the same capability, the agent picks in this order:

1. Local filesystem tools (lowest cost)
2. Specialized local servers (e.g., local Postgres, SQLite)
3. Remote API servers (e.g., GitHub, Brave Search, Slack)

### The Local-First Rule

[](#the-local-first-rule)

Before calling any MCP tool, the agent must check:

1. `specification/{namespace}/` — does the spec already answer this?
2. `archive/mcp-data/{namespace}/` — has this tool been called and cached?
3. `cache/discovery-report.md` — is this covered by the last discovery run?

Only if all three are empty or stale does the agent proceed with a tool call. Tool outputs are persisted to `archive/mcp-data/` so the worker never re-calls a tool for the same data.

### MCP in the Pipeline

[](#mcp-in-the-pipeline)

PhaseMCP usagePhase 1: Design`mcp-orchestrator` runs full capability mapping, enriches spec with live dataPhase 3: Production`task-processor` invokes `mcp-orchestrator` in lightweight mode for specific data needsPhase 3.5: SentinelUses runtime tools (linter, test runner) if available### Relevant Files

[](#relevant-files)

FilePurpose`steering/mcp-policy.md`Capability requirements, tool selection logic, authorization rules`steering/mcp-governance.md`Hard limits: context budget, write safety, failure fallback`steering/mcp-etiquette.md`Local-First rule, purposeful tool use, no spec overwrites`skills/mcp-orchestrator.md`The bridge skill — discovery, justification, execution, sentinel filter`archive/mcp-data/`Persisted tool outputs, reused across tasks---

Customizing for Your Project
----------------------------

[](#customizing-for-your-project)

Every skill, steering file, and template can be overridden at the project level without touching the package files. The agent checks `.agent/` first before falling back to the package defaults.

```
your-project/
  .agent/
    skills/
      quality-reviewer.md     ← overrides the default
      sentinel.md             ← overrides the default
    steering/
      principles.md           ← overrides the default
    templates/
      plan/
        plan-template.md      ← overrides the default

```

To extend rather than replace, start your override file with:

```
# [Skill Name] — Project Extension

> Extends the base skill. All base behavior applies unless explicitly overridden below.

## Project-Specific Additions

...your additions here...
```

Two files should never be overridden: `steering/workflow.md` (the pipeline contract) and `steering/overrides.md` (the override system itself).

See `steering/overrides.md` for the full resolution order, a complete list of overridable files, and guidance on what to override with caution.

---

License
-------

[](#license)

MIT — see [LICENSE](LICENSE).

###  Health Score

31

—

LowBetter than 66% of packages

Maintenance86

Actively maintained with recent releases

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity27

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

3

Last Release

91d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/cb450f546f3831bdccecd8fde5793abdb503686dfb0b192cdfe3b268940ec9bf?d=identicon)[rhazen35](/maintainers/rhazen35)

---

Top Contributors

[![rhazen35](https://avatars.githubusercontent.com/u/11785626?v=4)](https://github.com/rhazen35 "rhazen35 (1 commits)")

---

Tags

aiworkflowAgentorchestrationspec-driven

### Embed Badge

![Health badge](/badges/rhazen35-agent-orchestration/health.svg)

```
[![Health](https://phpackages.com/badges/rhazen35-agent-orchestration/health.svg)](https://phpackages.com/packages/rhazen35-agent-orchestration)
```

###  Alternatives

[helsingborg-stad/municipio

A bootstrap theme for creating municipality sites.

4028.3k10](/packages/helsingborg-stad-municipio)[maestroerror/laragent

Power of AI Agents in your Laravel project

639142.5k](/packages/maestroerror-laragent)[symfony/ai-agent

PHP library for building agentic applications.

31746.8k82](/packages/symfony-ai-agent)[mohamed-ashraf-elsaed/claude-agent-sdk-laravel

Anthropic Claude Agent SDK for PHP &amp; Laravel — build AI agents with tool use, sandboxing, MCP servers, subagents, hooks, and structured output via the Claude Code CLI

171.1k](/packages/mohamed-ashraf-elsaed-claude-agent-sdk-laravel)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
