- 18 agent specs across Software, Support, Marketing, Cross-cutting (orchestrator + 7 software + 5 support + 3 cross-cutting + leads-finder) - 8 reusable skills (handoff, pr-review, dokploy-deploy, campaign-structure, content-calendar, ticket-triage, license-lifecycle, invoice-draft) - 3 JSON schemas: handoff, deliverable, approval - Policies: autonomy levels, tool risk classification, compliance (DSGVO/GoBD/UWG) - routing.toml: model tiers T1/T2/T3 + provider config (PII gating) - Rust workspace (5 crates, all compile + 16 tests pass): - aos-mcp: tool registry + risk tagging - aos-policy: autonomy levels, budget enforcement, approval requests - aos-license: ed25519 license issue/verify (real crypto + CLI binary) - aos-ledger: integer-cents money math, gapless numbering, VAT, audit chain - aos-sync: frontmatter validator (18/18 specs pass), CLI binary - CLAUDE.md entry point with architecture overview + roadmap
69 lines
2.6 KiB
JSON
69 lines
2.6 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"$id": "https://zeroclaw.dev/schemas/deliverable.json",
|
|
"title": "AgentDeliverable",
|
|
"description": "Standard result envelope returned by a worker/lead agent. The caller (usually a lead or orchestrator) consumes this without re-parsing free-form chat.",
|
|
"type": "object",
|
|
"required": ["task_id", "agent", "status"],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"task_id": { "type": "string", "pattern": "^AOS-\\d+$" },
|
|
"agent": { "type": "string", "description": "Name of the agent that produced this deliverable." },
|
|
"status": {
|
|
"enum": ["done", "blocked", "needs_review", "needs_approval", "failed"],
|
|
"description": "done = complete and self-verified. needs_review = ready for reviewer/QA. needs_approval = paused at a human gate."
|
|
},
|
|
"deliverables": {
|
|
"type": "array",
|
|
"description": "Concrete outputs — AOS IDs, file paths, URLs, or inline content.",
|
|
"items": {
|
|
"type": "object",
|
|
"required": ["kind", "ref"],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"kind": { "enum": ["aos_record", "file", "url", "inline", "diff"] },
|
|
"ref": { "type": "string", "description": "AOS id, file path, URL, or inline content." },
|
|
"label": { "type": "string" }
|
|
}
|
|
}
|
|
},
|
|
"open_questions": {
|
|
"type": "array",
|
|
"description": "Questions for the human or the orchestrator that block progress.",
|
|
"items": { "type": "string" }
|
|
},
|
|
"risks": {
|
|
"type": "array",
|
|
"description": "Anything the caller should know: assumptions made, fragile steps, compliance flags.",
|
|
"items": {
|
|
"type": "object",
|
|
"required": ["description"],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"description": { "type": "string" },
|
|
"severity": { "enum": ["low", "medium", "high"] },
|
|
"mitigation": { "type": "string" }
|
|
}
|
|
}
|
|
},
|
|
"cost": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"tokens": { "type": "integer", "minimum": 0 },
|
|
"eur": { "type": "number", "minimum": 0, "description": "External spend (ads, API fees). 0 if none." }
|
|
}
|
|
},
|
|
"review_verdict": {
|
|
"type": "object",
|
|
"description": "Only set when this deliverable is a reviewer's verdict on another task.",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"reviewed_task_id": { "type": "string" },
|
|
"verdict": { "enum": ["approved", "changes_requested", "rejected"] },
|
|
"notes": { "type": "string" }
|
|
}
|
|
}
|
|
}
|
|
}
|