profit 77655c298c Initial commit: Agent Governance System Phase 8
Phase 8 Production Hardening with complete governance infrastructure:

- Vault integration with tiered policies (T0-T4)
- DragonflyDB state management
- SQLite audit ledger
- Pipeline DSL and templates
- Promotion/revocation engine
- Checkpoint system for session persistence
- Health manager and circuit breaker for fault tolerance
- GitHub/Slack integrations
- Architectural test pipeline with bug watcher, suggestion engine, council review
- Multi-agent chaos testing framework

Test Results:
- Governance tests: 68/68 passing
- E2E workflow: 16/16 passing
- Phase 2 Vault: 14/14 passing
- Integration tests: 27/27 passing

Coverage: 57.6% average across 12 phases

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 22:07:06 -05:00

220 lines
5.6 KiB
Markdown

# Agent Governance Pipeline System
This directory contains the **authoritative pipeline implementation** for the AI Agent Governance System.
## Architecture Reference
See `/opt/agent-governance/docs/ARCHITECTURE.md` for the full system design.
## Directory Structure
```
pipeline/
├── core.py # AUTHORITATIVE: Core definitions, enums, constants
├── pipeline.py # Pipeline DSL parser and executor
├── README.md # This file
├── schemas/
│ └── pipeline.schema.json # JSON Schema for pipeline validation
├── templates/
│ ├── default.yaml # Generic observer-tier agent
│ ├── terraform.yaml # Infrastructure specialist (T1)
│ ├── ansible.yaml # Configuration management (T1)
│ └── code-review.yaml # Code review specialist (T0)
└── examples/
├── infrastructure-deploy.yaml
└── multi-agent-analysis.yaml
```
## Core Module (`core.py`)
**All code should import pipeline definitions from `pipeline.core`** to ensure consistency.
### Agent Lifecycle Phases
The official agent lifecycle follows these phases in order:
```
BOOTSTRAP → PREFLIGHT → PLAN → EXECUTE → VERIFY → PACKAGE → REPORT → EXIT
```
| Phase | Description | Output Type |
|-------|-------------|-------------|
| BOOTSTRAP | Agent initialization and authentication | Alpha |
| PREFLIGHT | Pre-execution validation (sandbox, inventory, deps) | Alpha |
| PLAN | Generate and validate execution plan | Beta |
| EXECUTE | Perform the planned actions | Beta |
| VERIFY | Validate execution results | Gamma |
| PACKAGE | Bundle artifacts and evidence | Gamma |
| REPORT | Generate completion report | Gamma |
| EXIT | Clean shutdown and resource release | Gamma |
| REVOKED | Agent was revoked (terminal state) | - |
### Importing Core Definitions
```python
from pipeline.core import (
# Enums
AgentPhase,
AgentStatus,
OutputType,
ChaosCondition,
StageType,
StageStatus,
# Data classes
AgentOutput,
ClarifiedPlan,
ErrorBudget,
StageResult,
PipelineContext,
# Constants
AGENT_PHASE_NAMES,
AGENT_PHASES_ORDERED,
PHASE_OUTPUT_TYPES,
DEFAULT_REDIS_HOST,
DEFAULT_REDIS_PORT,
DEFAULT_REDIS_PASSWORD,
DEFAULT_LEDGER_PATH,
# Key patterns
RedisKeys,
# Utilities
get_output_type_for_phase,
is_terminal_phase,
next_phase,
)
```
### Output Types (Alpha/Beta/Gamma)
Agents produce outputs at checkpoints, classified as:
- **Alpha**: Initial/draft outputs (plans, analysis)
- **Beta**: Refined outputs (validated plans, partial results)
- **Gamma**: Final outputs (completed work, verified results)
### DragonflyDB Key Patterns
Use `RedisKeys` class for consistent key naming:
```python
from pipeline.core import RedisKeys
# Agent keys
agent_state = RedisKeys.agent_state("agent-001") # "agent:agent-001:state"
agent_lock = RedisKeys.agent_lock("agent-001") # "agent:agent-001:lock"
# Project keys
project_agents = RedisKeys.project_agents("proj-001") # "project:proj-001:agents"
```
## Pipeline DSL (`pipeline.py`)
The pipeline DSL supports four stage types:
### Stage Types
1. **agent**: Execute an agent task
2. **gate**: Approval/consensus checkpoint
3. **parallel**: Concurrent execution of branches
4. **condition**: Conditional branching (if/then/else)
### Example Pipeline
```yaml
name: example-pipeline
version: "1.0"
timeout: 30m
stages:
- name: plan
type: agent
template: default
config:
tier: 1
timeout: 10m
- name: review
type: gate
requires: [plan]
config:
gate_type: approval
approvers: ["team-lead"]
timeout: 30m
- name: execute
type: agent
requires: [review]
template: terraform
config:
tier: 2
```
### Running a Pipeline
```bash
# Validate a pipeline
python pipeline/pipeline.py validate pipeline/examples/infrastructure-deploy.yaml
# Run a pipeline
python pipeline/pipeline.py run pipeline/examples/infrastructure-deploy.yaml \
--input environment=staging
# List available templates
python pipeline/pipeline.py list
```
## Chaos Testing Integration
The chaos test framework (`tests/multi-agent-chaos/`) imports from `pipeline.core` to ensure consistency:
```python
# In tests/multi-agent-chaos/orchestrator.py
from pipeline.core import (
AgentPhase,
OutputType,
ChaosCondition,
AGENT_PHASE_NAMES,
RedisKeys,
)
```
### Running Chaos Tests
```bash
python tests/multi-agent-chaos/orchestrator.py
```
The chaos test:
1. Spawns multiple real agents (Python, Bun, Diagnostic)
2. Injects chaos conditions (lock loss, error spikes, etc.)
3. Tracks Alpha/Beta/Gamma outputs
4. Triggers plan clarification when error threshold crossed
5. Verifies unified objective reached via DragonflyDB readiness checks
## Files Changed for Unification
The following files were aligned with the architecture spec:
| File | Change |
|------|--------|
| `pipeline/core.py` | NEW: Authoritative definitions |
| `tests/multi-agent-chaos/orchestrator.py` | Updated to import from `pipeline.core` |
| `pipeline/README.md` | NEW: This documentation |
## Consistency Checklist
When adding new pipeline-related code:
1. **Import from `pipeline.core`** - never define enums/constants locally
2. **Use official phase names** - `AGENT_PHASE_NAMES` or `AGENT_PHASES_ORDERED`
3. **Use RedisKeys class** - for consistent DragonflyDB key naming
4. **Follow output types** - `PHASE_OUTPUT_TYPES` maps phases to Alpha/Beta/Gamma
5. **Include PACKAGE phase** - often forgotten, but required for artifact bundling
## Version History
- **v1.0** (2026-01-23): Initial unified pipeline consolidation