# Agent Ops Framework

> Production-grade multi-agent team orchestration framework. Define agent roles, task pipelines, quality gates, and monitoring dashboards. Inspired by Google Vertex AI, Microsoft AutoGen, CrewAI, and Anthropic agent patterns. Features: role-based agent registry, task lifecycle (backlog→assigned→in-progress→review→done→deployed), structured handoffs with context passing, quality gates before promotion, centralized state store (single JSON source of truth), quota/budget management, cron-based monitoring with alerts, rollback capability, and human-in-the-loop approval points. Use when: (1) managing 3+ specialized agents on a project, (2) building CI/CD-style pipelines for content or code, (3) tracking task progress across multiple agents, (4) enforcing quality standards before deployment, (5) monitoring agent performance and output quality, (6) managing rate limits and quotas across accounts. multi-agent orchestration, team management, task pipeline, quality assurance, agent coordination, project management, CI/CD

- Skill: `dvcrn/agent-ops-framework` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add dvcrn/agent-ops-framework`
- Raw SKILL.md: https://api.skillmd.com/api/skills/dvcrn/agent-ops-framework/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Product & Planning
- Author: dvcrn (https://skillmd.com/u/dvcrn)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/dvcrn/agent-ops-framework

---


# Agent Ops Framework

Production-grade multi-agent team orchestration for OpenClaw projects.

## Why This Framework?

Running multiple agents without structure leads to:
- ❌ Conflicting data (3 different lists say different things)
- ❌ No quality gates (broken skills get published)
- ❌ No accountability (who did what?)
- ❌ No visibility (what's the current status?)

This framework fixes all of that.

## Architecture

```
┌─────────────────────────────────────────────┐
│  👑 ORCHESTRATOR (Main Session)             │
│  - Receives human requests                  │
│  - Makes decisions, delegates tasks          │
│  - Reviews reports, approves promotions      │
│  - NEVER does implementation work           │
├─────────────────────────────────────────────┤
│                                             │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐    │
│  │ 🔨 DEV  │→│ ✅ QA   │→│ 📦 DEPLOY│    │
│  │ Agent   │  │ Agent   │  │ Agent    │    │
│  └─────────┘  └─────────┘  └─────────┘    │
│       ↑                          │          │
│       │    ┌──────────┐          ↓          │
│       └────│ 📊 MON   │←────────┘          │
│            │ Agent    │                     │
│            └──────────┘                     │
│                                             │
│  ┌──────────────────────────────────┐       │
│  │  💾 STATE STORE (state.json)     │       │
│  │  Single source of truth          │       │
│  │  All agents read/write here      │       │
│  └──────────────────────────────────┘       │
└─────────────────────────────────────────────┘
```

## Quick Start

### 1. Initialize Project
```bash
bash scripts/ops.sh init --project "my-project" --state-dir /path/to/state
```

### 2. Register Agents
```bash
bash scripts/ops.sh agent add --name "dev" --role "developer" --desc "Builds features"
bash scripts/ops.sh agent add --name "qa" --role "reviewer" --desc "Tests and validates"
bash scripts/ops.sh agent add --name "deploy" --role "deployer" --desc "Ships to production"
bash scripts/ops.sh agent add --name "monitor" --role "observer" --desc "Tracks metrics"
```

### 3. Create Tasks
```bash
bash scripts/ops.sh task add --id "SKILL-001" --title "Build chart-generator v2" \
  --assign "dev" --priority "high" --pipeline "dev→qa→deploy"
```

### 4. Move Tasks Through Pipeline
```bash
bash scripts/ops.sh task move --id "SKILL-001" --to "in-progress"
bash scripts/ops.sh task move --id "SKILL-001" --to "review" --output "/path/to/deliverable"
bash scripts/ops.sh task move --id "SKILL-001" --to "done" --approved-by "qa"
bash scripts/ops.sh task move --id "SKILL-001" --to "deployed" --deploy-ref "v2.0.0"
```

### 5. Dashboard
```bash
bash scripts/ops.sh dashboard
bash scripts/ops.sh dashboard --format html > report.html
```

### 6. Monitor (Cron)
```bash
bash scripts/ops.sh monitor --check-stale --check-quota --alert-to /tmp/alerts.log
```

## Task Lifecycle

```
BACKLOG → ASSIGNED → IN-PROGRESS → REVIEW → DONE → DEPLOYED
   │          │           │           │        │        │
   │          │           │           ↓        │        │
   │          │           │        REJECTED    │        │
   │          │           │           │        │        │
   │          │           ←───────────┘        │        │
   │          │                                │        │
   └──────────┴────────── CANCELLED ←──────────┘        │
                                                        │
                                              ROLLED-BACK←┘
```

## Quality Gates

Each transition can have gates:

| Transition | Gate | Rule |
|---|---|---|
| in-progress → review | Deliverable exists | File/dir must be present |
| review → done | QA approved | qa agent must sign off |
| done → deployed | Deploy success | Script exit code 0 |
| deployed → rolled-back | Rollback trigger | Manual or alert-based |

## State Store Schema

All state lives in one JSON file (`state.json`):

```json
{
  "project": "bytesagain-skills",
  "created": "2026-03-12T06:00:00Z",
  "agents": {
    "dev": {"role": "developer", "tasks_completed": 20, "last_active": "..."},
    "qa": {"role": "reviewer", "tasks_completed": 15, "last_active": "..."},
    "deploy": {"role": "deployer", "tasks_completed": 10, "last_active": "..."}
  },
  "tasks": {
    "SKILL-001": {
      "title": "Build chart-generator v2",
      "status": "deployed",
      "assigned": "dev",
      "pipeline": ["dev", "qa", "deploy"],
      "priority": "high",
      "history": [
        {"status": "assigned", "at": "...", "by": "orchestrator"},
        {"status": "in-progress", "at": "...", "by": "dev"},
        {"status": "review", "at": "...", "by": "dev", "output": "/skills/chart-generator/"},
        {"status": "done", "at": "...", "by": "qa", "notes": "All checks pass"},
        {"status": "deployed", "at": "...", "by": "deploy", "ref": "v2.0.0"}
      ]
    }
  },
  "quotas": {
    "publish_daily": {"limit": 100, "used": 45, "reset_at": "2026-03-13T00:00:00Z"},
    "api_hourly": {"limit": 60, "used": 12, "reset_at": "2026-03-12T07:00:00Z"}
  },
  "metrics": {
    "last_check": "2026-03-12T05:17:00Z",
    "total_downloads": 7591,
    "skills_online": 152,
    "alerts": []
  }
}
```

## Commands Reference

| Command | Description |
|---|---|
| `ops.sh init` | Initialize project state |
| `ops.sh agent add/list/remove` | Manage agent registry |
| `ops.sh task add/list/move/cancel` | Manage tasks |
| `ops.sh pipeline define/show` | Define task pipelines |
| `ops.sh gate add/check` | Quality gate management |
| `ops.sh quota set/check/reset` | Quota management |
| `ops.sh dashboard` | Status dashboard (text/html) |
| `ops.sh monitor` | Run monitoring checks |
| `ops.sh report` | Generate period report |
| `ops.sh history` | View task/agent history |
| `ops.sh rollback` | Rollback a deployment |

## Integration with OpenClaw

This framework is designed for OpenClaw's sub-agent system:

```
Orchestrator (main session)
├── sessions_spawn(task="dev work", label="dev-agent")
├── sessions_spawn(task="qa review", label="qa-agent")  
└── sessions_spawn(task="deploy", label="deploy-agent")
```

Each spawned agent reads its tasks from `state.json` and updates status on completion.

## Best Practices

1. **Orchestrator never implements** — only decides and delegates
2. **One state file** — no scattered /tmp files
3. **Every transition logged** — full audit trail
4. **Quality gates enforced** — no skipping review
5. **Quotas tracked** — prevent rate limit surprises
6. **Alerts on anomalies** — stale tasks, failed deploys, quota exhaustion
7. **Regular retrospectives** — update process based on data

---
Powered by BytesAgain | bytesagain.com | hello@bytesagain.com

