awesome-loop-engineering / schemas /loop-contract.schema.json
cy0307's picture
Sync awesome-loop-engineering
9ec4919 verified
Raw
History Blame Contribute Delete
5.03 kB
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "urn:awesome-loop-engineering:loop-contract",
"title": "Loop Engineering Contract",
"description": "A portable contract for recurring AI-agent loops.",
"type": "object",
"additionalProperties": false,
"required": [
"name",
"objective",
"trigger",
"intake",
"workspace",
"context",
"agents",
"verification",
"state",
"budget",
"escalation",
"exit"
],
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"objective": {
"type": "string",
"minLength": 1
},
"trigger": {
"type": "object",
"additionalProperties": false,
"required": ["type", "cadence_or_event"],
"properties": {
"type": {
"type": "string",
"enum": ["scheduled", "event", "goal", "manual-bootstrap"]
},
"cadence_or_event": {
"type": "string",
"minLength": 1
}
}
},
"intake": {
"type": "object",
"additionalProperties": false,
"required": ["sources", "selection_rule"],
"properties": {
"sources": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"minLength": 1
}
},
"selection_rule": {
"type": "string",
"minLength": 1
}
}
},
"workspace": {
"type": "object",
"additionalProperties": false,
"required": ["isolation", "allowed_actions", "disallowed_actions"],
"properties": {
"isolation": {
"type": "string",
"minLength": 1
},
"allowed_actions": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"disallowed_actions": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
}
},
"context": {
"type": "object",
"additionalProperties": false,
"required": ["required_files", "runtime_sources"],
"properties": {
"required_files": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"runtime_sources": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
}
},
"agents": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"required": ["role", "responsibility"],
"properties": {
"role": {
"type": "string",
"minLength": 1
},
"responsibility": {
"type": "string",
"minLength": 1
}
}
}
},
"verification": {
"type": "object",
"additionalProperties": false,
"required": ["gates", "receipts"],
"properties": {
"gates": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"minLength": 1
}
},
"receipts": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"minLength": 1
}
}
}
},
"state": {
"type": "object",
"additionalProperties": false,
"required": ["artifacts", "update_rule"],
"properties": {
"artifacts": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"minLength": 1
}
},
"update_rule": {
"type": "string",
"minLength": 1
}
}
},
"budget": {
"type": "object",
"additionalProperties": false,
"required": ["max_retries", "max_runtime_minutes"],
"properties": {
"max_retries": {
"type": "integer",
"minimum": 0
},
"max_runtime_minutes": {
"type": "integer",
"minimum": 1
}
}
},
"escalation": {
"type": "object",
"additionalProperties": false,
"required": ["conditions", "destination"],
"properties": {
"conditions": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"minLength": 1
}
},
"destination": {
"type": "string",
"minLength": 1
}
}
},
"exit": {
"type": "object",
"additionalProperties": false,
"required": ["success", "stop_without_success"],
"properties": {
"success": {
"type": "string",
"minLength": 1
},
"stop_without_success": {
"type": "string",
"minLength": 1
}
}
}
}
}