Files
boshu2__agentops/schemas/phase.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

44 lines
1.3 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://agentops.dev/schemas/phase.v1.schema.json",
"title": "Phase State Machine",
"description": "Defines legal state transitions for beads",
"practices": ["continuous-delivery", "agile-manifesto"],
"type": "object",
"required": ["allowed_transitions", "schema_version"],
"properties": {
"allowed_transitions": {
"type": "object",
"properties": {
"unclaimed": {
"type": "array",
"items": {"type": "string", "enum": ["claimed"]},
"description": "unclaimed can only transition to claimed"
},
"claimed": {
"type": "array",
"items": {"type": "string", "enum": ["done", "failed"]},
"description": "claimed can transition to done or failed"
},
"done": {
"type": "array",
"maxItems": 0,
"description": "done is terminal"
},
"failed": {
"type": "array",
"items": {"type": "string", "enum": ["unclaimed"]},
"description": "failed can be retried (back to unclaimed)"
}
},
"required": ["unclaimed", "claimed", "done", "failed"],
"additionalProperties": false
},
"schema_version": {
"type": "integer",
"const": 1
}
},
"additionalProperties": false
}