Summary
Make Festival's CLI protocol-first instead of SDK-first. The Go binaries remain the source of truth, but instead of generating SDKs from Cobra commands, expose a machine-readable schema that describes the CLI contract.
Proposed surface:
fest schema — full protocol/schema
fest schema <command> — one command
fest invoke <command> --json-input ... — invoke with structured JSON
fest version --json — version + protocol compatibility
The schema should define stable command identifiers, descriptions, JSON Schema for request/response, error definitions, and protocol version.
That protocol becomes the contract for Python/TypeScript SDK generation, docs, validation, IDE support, AI tool integrations, and version compatibility.
Research existing standards before inventing a new protocol.
Summary
Make Festival's CLI protocol-first instead of SDK-first. The Go binaries remain the source of truth, but instead of generating SDKs from Cobra commands, expose a machine-readable schema that describes the CLI contract.
Proposed surface:
fest schema— full protocol/schemafest schema <command>— one commandfest invoke <command> --json-input ...— invoke with structured JSONfest version --json— version + protocol compatibilityThe schema should define stable command identifiers, descriptions, JSON Schema for request/response, error definitions, and protocol version.
That protocol becomes the contract for Python/TypeScript SDK generation, docs, validation, IDE support, AI tool integrations, and version compatibility.
Research existing standards before inventing a new protocol.