agent-governance/pipeline/schemas/pipeline.schema.json
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

145 lines
4.3 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://agent-governance/schemas/pipeline.schema.json",
"title": "Agent Pipeline Definition",
"description": "Schema for defining composable agent pipelines",
"type": "object",
"required": ["name", "version", "stages"],
"properties": {
"name": {
"type": "string",
"pattern": "^[a-z][a-z0-9-]*$",
"description": "Pipeline name (lowercase, alphanumeric with dashes)"
},
"version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$",
"description": "Pipeline version (semver)"
},
"description": {
"type": "string",
"description": "Human-readable description of the pipeline"
},
"metadata": {
"type": "object",
"properties": {
"author": { "type": "string" },
"created_at": { "type": "string", "format": "date-time" },
"tags": { "type": "array", "items": { "type": "string" } }
}
},
"inputs": {
"type": "object",
"description": "Pipeline input parameters",
"additionalProperties": {
"type": "object",
"properties": {
"type": { "enum": ["string", "number", "boolean", "array", "object"] },
"required": { "type": "boolean", "default": false },
"default": {},
"description": { "type": "string" }
},
"required": ["type"]
}
},
"stages": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/stage"
}
},
"on_failure": {
"type": "object",
"properties": {
"action": { "enum": ["rollback", "notify", "pause", "continue"] },
"notify": { "type": "array", "items": { "type": "string" } },
"rollback_to": { "type": "string" }
}
},
"timeout": {
"type": "string",
"pattern": "^\\d+[smh]$",
"description": "Pipeline timeout (e.g., 30m, 2h)"
}
},
"$defs": {
"stage": {
"type": "object",
"required": ["name", "type"],
"properties": {
"name": {
"type": "string",
"description": "Stage name"
},
"type": {
"enum": ["agent", "gate", "parallel", "condition"],
"description": "Stage type"
},
"agent": {
"type": "object",
"description": "Agent configuration (for type: agent)",
"properties": {
"template": { "type": "string" },
"tier": { "type": "integer", "minimum": 0, "maximum": 4 },
"config": { "type": "object" }
}
},
"gate": {
"type": "object",
"description": "Gate configuration (for type: gate)",
"properties": {
"approval": { "enum": ["human", "auto", "consensus"] },
"timeout": { "type": "string" },
"approvers": { "type": "array", "items": { "type": "string" } }
}
},
"parallel": {
"type": "object",
"description": "Parallel execution (for type: parallel)",
"properties": {
"branches": {
"type": "array",
"items": { "$ref": "#/$defs/stage" }
},
"wait": { "enum": ["all", "any", "none"] }
}
},
"condition": {
"type": "object",
"description": "Conditional execution (for type: condition)",
"properties": {
"if": { "type": "string" },
"then": { "$ref": "#/$defs/stage" },
"else": { "$ref": "#/$defs/stage" }
}
},
"requires": {
"type": "array",
"items": { "type": "string" },
"description": "Stage dependencies (stage names)"
},
"artifacts": {
"type": "object",
"properties": {
"inputs": { "type": "array", "items": { "type": "string" } },
"outputs": { "type": "array", "items": { "type": "string" } }
}
},
"on_failure": {
"type": "object",
"properties": {
"action": { "enum": ["fail", "skip", "retry", "rollback"] },
"retries": { "type": "integer", "minimum": 0, "maximum": 5 },
"retry_delay": { "type": "string" }
}
},
"timeout": {
"type": "string",
"pattern": "^\\d+[smh]$"
}
}
}
}
}