feat: add make_type field for octos mofa_make dispatcher (RFC-1)#70
Open
ymote wants to merge 1 commit into
Open
feat: add make_type field for octos mofa_make dispatcher (RFC-1)#70ymote wants to merge 1 commit into
ymote wants to merge 1 commit into
Conversation
Companion to octos PR feat/rfc1-mofa-make-dispatcher (octos#1290 / PR octos-org/octos#1298). The octos runtime now consolidates the N sibling mofa_* content-generator tools behind a single dispatcher: mofa_make({ content_type: "slides" | "podcast" | ..., args: {...} }) This PR adds the manifest metadata the octos plugin loader reads to build the dispatcher's content_type enum + per-type description text. Fields added to each generator skill's manifest.json: - `make_type`: the content_type discriminator the LLM selects (e.g. "slides", "podcast", "site", "publish", "cards", "comic", "frame", "video", "infographic"). - `content_type_description`: short blurb (single sentence) the octos dispatcher surfaces verbatim in its tool description so the LLM has enough context to pick the right content_type. - `make_target_tool` (mofa-podcast only): explicit override pointing at `podcast_generate` since the conventional `mofa_<make_type>` -> `mofa_podcast` does not exist; without the override the resolver falls back to "first spawn_only:true tool" which is ALSO `podcast_generate`, but the explicit form documents intent and survives future tool additions. Skills updated (9 total) + version bumps: - mofa-cards 0.4.5 -> 0.4.6 - mofa-comic 0.4.5 -> 0.4.6 - mofa-frame 0.1.0 -> 0.1.1 - mofa-infographic 0.4.5 -> 0.4.6 - mofa-podcast 0.4.6 -> 0.4.7 - mofa-publish 0.1.0 -> 0.1.1 - mofa-site 0.1.0 -> 0.1.1 - mofa-slides 0.5.1 -> 0.5.2 - mofa-youtube 0.1.0 -> 0.1.1 NOT updated (intentionally): - mofa-cli: no tools to register. - mofa-fm: voice management (fm_*) is not a make_* content generator — its tools stay top-level on the LLM-visible surface. Effect after both PRs land: - LLM sees ONE `mofa_make` tool (string enum across the 9 content types above) + companion `mofa_describe_content_type`. - Sibling foreground tools next to a make target (`mofa_list_styles` next to `mofa_slides`, `podcast_voices` next to `podcast_generate`) stay visible to the LLM — only the EXACT generator tool is hidden. - The deferred generator tools remain callable internally via `registry.get(name)` so the dispatcher forwards by name and any gateway/test path that calls them directly keeps working. - The "weak model picks wrong sibling" misroute class (PR octos-org/octos#1265, #1283, mini1 k2.6 misroutes 2026-05-24/25, mini2 deepseek hand-rolled-deck 2026-05-25) is structurally eliminated. The octos runtime tolerates manifests WITHOUT these fields — existing deployments continue to expose each mofa_* tool individually until the octos runtime is upgraded. After upgrade, the new fields take effect on the next octos-side load. Cross-link: octos-org/octos#1290 (RFC-1), octos-org/octos#1298 (server).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Companion to the octos RFC-1 PR (octos-org/octos#1290, octos-org/octos#1298). The octos runtime now consolidates the N sibling
mofa_*content-generator tools behind a single dispatcher:This PR adds the manifest metadata the octos plugin loader reads to build the dispatcher's content_type enum + per-type description text.
Fields added
make_type- the content_type discriminator the LLM selects.content_type_description- short blurb the dispatcher surfaces verbatim.make_target_tool(mofa-podcast only) - explicit override since the conventional namemofa_<make_type>doesn't exist for podcast.Skills updated
cardscomicframeinfographicpodcastpodcast_generatepublishsiteslidesvideoNot updated (intentionally)
fm_*) is not a content generator; its tools stay top-level.Backward compatibility
The octos runtime tolerates manifests without these fields - existing deployments continue to expose each
mofa_*tool individually until the octos runtime is upgraded. After upgrade, the new fields take effect on the next octos-side load.Effect after both PRs land
mofa_maketool (string enum) + companionmofa_describe_content_type.mofa_list_stylesnext tomofa_slides,podcast_voicesnext topodcast_generate) stay visible.registry.get(name).Test plan
make_typevalue is unique across the 9 manifests.mofa_makeenum population on/api/status.Cross-link: octos-org/octos#1290 (RFC), octos-org/octos#1298 (server PR).