You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
An organiser who asks an AI assistant for help drafting or checking an events.json today depends entirely on that assistant having read the spec correctly on its own, or on us handing it a prompt (#38, #39). Nothing structural stops the model from hallucinating a field, guessing at an enum value, or telling an organiser their JSON is fine when it silently fails one of the schemas in spec/v0.4/. The generate→validate loop still lives in the model's head, not in a deterministic check.
Why this matters for OTE
MCP (Model Context Protocol) lets any compatible agent — Claude (Desktop/Code), ChatGPT (apps/connectors), Codex, and others — install a server from its own marketplace and call typed tools instead of just reading prose. For OTE that means the "create + validate" half of adoption could run as actual tool calls, backed by the same deterministic engine the ecosystem already trusts, rather than depending on how well a given chat session happened to read the docs:
Create — draft an event/feed from a plain-language description.
Validate, deterministically — check the draft (or any existing document) against spec/v0.4/event.schema.json / feed.schema.json (+ the .recommended.schema.json pair), reusing the same engine already published as @opentechevents/validate and used by the editor's live validation and the kit's CI. "Valid" would mean "passes the real JSON Schema," never the model's opinion.
Guide — answer "how do I adopt OTE" questions grounded in spec/v0.4/README.md / reference.*.md (and llms-full.txt), so answers cite the actual current-version prose instead of the model's memory.
The determinism boundary matters: creation and guidance are inherently model-driven (like any RAG-style helper), but validation would not be — it's the same schema/CLI logic wrapped as a tool, not a second opinion from the LLM.
Possible shape
An MCP server package, installable from whichever marketplace each agent uses, so it isn't tied to one vendor.
Tools exposed (naming illustrative):
validate_event / validate_feed — thin wrapper around @opentechevents/validate.
draft_event — natural language → first-draft OTE JSON, meant to be immediately run through validate_event before anything is published — the same generate→validate→publish sequence [Web] Flujo guiado "genera tu JSON OTE con una IA → valida → publica" para organizadores nuevos #38 proposes for the web, just reachable from inside whatever agent the organiser already has open instead of a copy-pasted prompt.
ask_spec — guidance Q&A grounded in the published spec docs for the current version.
Not a rewrite of the editor/generator or the validator web app — it would wrap the already-published packages and schemas rather than reimplement validation logic.
Doesn't touch spec/v0.4/ or any frozen version — no schema change is being proposed here.
Open questions
Which MCP-compatible surfaces to target first, and whether their marketplaces/manifests are compatible enough to ship once, or packaging has to diverge per platform.
Overlap vs. complement with [Tool] Conversational bot to draft OTE events #9 (Conversational bot to draft OTE events): is draft_event the same idea wearing an MCP transport instead of a dedicated bot, or a distinct, lighter-weight sibling (no memory of "your usual repos", no bot backend to run, works in whatever agent the organiser already has installed)?
Where this would live — a new package under the @opentechevents/* npm scope (e.g. @opentechevents/mcp-server), given it would depend directly on @opentechevents/validate?
Problem
An organiser who asks an AI assistant for help drafting or checking an
events.jsontoday depends entirely on that assistant having read the spec correctly on its own, or on us handing it a prompt (#38, #39). Nothing structural stops the model from hallucinating a field, guessing at an enum value, or telling an organiser their JSON is fine when it silently fails one of the schemas inspec/v0.4/. The generate→validate loop still lives in the model's head, not in a deterministic check.Why this matters for OTE
MCP (Model Context Protocol) lets any compatible agent — Claude (Desktop/Code), ChatGPT (apps/connectors), Codex, and others — install a server from its own marketplace and call typed tools instead of just reading prose. For OTE that means the "create + validate" half of adoption could run as actual tool calls, backed by the same deterministic engine the ecosystem already trusts, rather than depending on how well a given chat session happened to read the docs:
spec/v0.4/event.schema.json/feed.schema.json(+ the.recommended.schema.jsonpair), reusing the same engine already published as@opentechevents/validateand used by the editor's live validation and the kit's CI. "Valid" would mean "passes the real JSON Schema," never the model's opinion.spec/v0.4/README.md/reference.*.md(andllms-full.txt), so answers cite the actual current-version prose instead of the model's memory.The determinism boundary matters: creation and guidance are inherently model-driven (like any RAG-style helper), but validation would not be — it's the same schema/CLI logic wrapped as a tool, not a second opinion from the LLM.
Possible shape
validate_event/validate_feed— thin wrapper around@opentechevents/validate.draft_event— natural language → first-draft OTE JSON, meant to be immediately run throughvalidate_eventbefore anything is published — the same generate→validate→publish sequence [Web] Flujo guiado "genera tu JSON OTE con una IA → valida → publica" para organizadores nuevos #38 proposes for the web, just reachable from inside whatever agent the organiser already has open instead of a copy-pasted prompt.ask_spec— guidance Q&A grounded in the published spec docs for the current version.docs/ask-ai.js([Web] Flujo guiado "genera tu JSON OTE con una IA → valida → publica" para organizadores nuevos #38/[Web] El validador OTE podría enlazar a un agente de IA para explicar/corregir errores (y a GitHub Discussions para pedir ayuda humana) #39).Non-goals
spec/v0.4/or any frozen version — no schema change is being proposed here.Open questions
draft_eventthe same idea wearing an MCP transport instead of a dedicated bot, or a distinct, lighter-weight sibling (no memory of "your usual repos", no bot backend to run, works in whatever agent the organiser already has installed)?@opentechevents/*npm scope (e.g.@opentechevents/mcp-server), given it would depend directly on@opentechevents/validate?Related
spec/v0.4/).