mirror of
https://github.com/boshu2/agentops.git
synced 2026-09-14 15:08:13 +08:00
f4f3dd63d9
schemas/ pool exhausted (33/33). Mixed declaration carrier: - 22 schemas: top-level "practices": [slug, ...] sibling to "description". Loose JSON Schema (no additionalProperties: false at root) accepts unknown keywords; meta-schema treats this as inert metadata. - 11 schemas with additionalProperties: false: "$comment": "practices: [slug, slug]" — $comment is a reserved meta-keyword and the citation validator regex matches the practices: substring inside it. After pass 10: 160 with practices / 594 missing. Remaining: evals/ (61), cli/ (533). schemas/, hooks/, and skills/ all fully declared. Added scripts/insert-schema-practices.py (one-off): deterministic insertion, validates JSON parses before writing.
72 lines
1.9 KiB
JSON
72 lines
1.9 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://agentops.dev/schemas/bead.v1.schema.json",
|
|
"title": "Bead",
|
|
"description": "A single unit of work within a quest",
|
|
"practices": ["dora-metrics", "lean-startup"],
|
|
"type": "object",
|
|
"required": ["bead_id", "quest_id", "title", "description", "status", "dependencies", "created_at", "schema_version"],
|
|
"properties": {
|
|
"bead_id": {
|
|
"type": "string",
|
|
"pattern": "^[0-9A-Za-z]{26}$",
|
|
"description": "ULID identifier"
|
|
},
|
|
"quest_id": {
|
|
"type": "string",
|
|
"pattern": "^[0-9A-Za-z]{26}$",
|
|
"description": "Parent quest ULID"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"enum": ["unclaimed", "claimed", "done", "failed"]
|
|
},
|
|
"claimed_by": {
|
|
"type": ["string", "null"],
|
|
"description": "Agent session ID that claimed this bead"
|
|
},
|
|
"claimed_at": {
|
|
"type": ["string", "null"],
|
|
"format": "date-time"
|
|
},
|
|
"completed_at": {
|
|
"type": ["string", "null"],
|
|
"format": "date-time"
|
|
},
|
|
"verdict_id": {
|
|
"type": ["string", "null"],
|
|
"pattern": "^[0-9A-Za-z]{26}$",
|
|
"description": "Athena verdict ID that authorized completion"
|
|
},
|
|
"dependencies": {
|
|
"type": "array",
|
|
"items": {"type": "string", "pattern": "^[0-9A-Za-z]{26}$"},
|
|
"description": "Bead IDs that must complete before this one"
|
|
},
|
|
"output_path": {
|
|
"type": ["string", "null"],
|
|
"description": "Path to the work output"
|
|
},
|
|
"failure_reason": {
|
|
"type": ["string", "null"],
|
|
"description": "Reason for failure (set by apollo fail command)"
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"schema_version": {
|
|
"type": "integer",
|
|
"const": 1
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|