mirror of
https://github.com/Heretek-AI/heretek-control-core.git
synced 2026-10-12 02:03:55 +00:00
LobeHub (and other) agents kept failing to call emcp-tools/comic-write because its "scheme" was invisible: the static schema exposed only an unconstrained operation string plus an opaque free-form arguments object, and comic-write uniquely marked operation as REQUIRED, so the documented "call with no operation to list the catalog" discovery call was blocked at the schema level. The hand-maintained runtime catalog had also drifted from the executors, omitting status (which defaults to publish), date, author, taxonomies, content_warning, and comic_html_above/below — exactly the facts agents were guessing at. - comic-write no longer requires operation, so the empty-op discovery call is legal; both tools' operation property now carries an enum of the real operation names. - Add op_schema() to the read and write operations classes as the single source of truth (typed JSON Schema + a realistic example per op). The discovery catalog is generated from it — each entry keeps the flat arguments hints and gains typed schema + example — so the docs can never drift from the executors again. - Tool descriptions now state the discovery flow and the create-comic contract (status defaults to "publish", date backdating, image flow, author). - Clarify in both emcp-comic-easel SKILL.md files that imported strips must always pass "status": "draft" explicitly, since the tool's own default is publish. - Tests: new schema-exposure suite (no required operation, enum == spec keys, catalog schema+example, status default/fields exposed, and a parity guard pinning every executor field to the spec). All 8 suites pass. Co-Authored-By: Claude <[email protected]>