Files
boshu2__agentops/schemas/bead.v1.schema.json
T
Boden Fuller f4f3dd63d9 feat(practice): pass-10 backfill — practices: declared on all 33 schemas/
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.
2026-05-10 23:47:29 -04:00

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
}