D53. One agent operation catalogue, several transports and explicit workflow coverage (17 Oct 2026)
The CLI and MCP remain supported for external agents, plugins and future embedded agents. Agent operations share one catalogue, input schema, handler and result (packages/cli/src/agent-tools.ts); domain rules stay in core/node. elabora tools list/call makes every MCP operation available to a shell client without configuring MCP; convenient CLI commands keep their file/batch options. elabora_agent_guide, tools guide and the exported guide give the same provider-independent workflow index. Course rules state the fallback and the role of direct code/design edits, rather than claiming CLI/MCP equivalence.
A host can expose an exact list with mcp --tools or ToolOptions.tools, intersected with read-only mode. Discovery and dispatch use the same selection, fixed for the connection; unknown names are refused. This limits tool exposure, not filesystem access or other host tools. Human decisions remain human regardless of transport. The current app handoff supplies the bundled CLI and the course folder; it does not silently configure agents’ settings.
Coverage is measured in workflows, not identical flag lists: translation reads, writes, checks, looks, captures, builds and tests through the source server with language; generated checks use separate disposable copies, and durable outputs stay in source dist/. Approval is separate and required for release. Contract tests compare discovery/results/errors and undo across transports; a browser test completes translation delivery using one MCP client. See agents.md.
19 Oct 2026: skills are read through elabora_docs too
The catalogue was meant to be the one way in, yet the skills of D34 (17 Oct) were read only as MCP resources or with elabora tools skills: no operation of the catalogue returned them, unlike the documentation (elabora_docs). A host that gives the model tools but does not show resources got the course rules and the one-line routes, and none of the detailed recipes; the whole point of the progressive split is lost for it. Weighed: a new tool elabora_skills (clearest, but one more definition in every connection’s tool list, against the saving D34 made); resources only (the gap stays); elabora_docs serving them. Chosen: elabora_docs serves them as pages, with no new tool and no new parameter. skills lists them with their descriptions and references, skills/<name> reads one, skills/<name>/<reference> (or skills/<name>/references/<reference>) a reference; a section and a long page’s outline work as for the documentation, the map ends with a line saying so, and elabora docs skills/<name> does the same without a course. The resource, elabora tools skills and elabora_docs return the same text (tested). The course rules, the MCP instructions and the agent guide name the route in one clause.
Revisit if: a host needs a skill’s files and not only its text, or the list of skills grows so long that the map has to hold more than one line for them.