Summary
The shared deterministic router does not dispatch multiline inline seed content for /ouroboros:run, even though the run skill contract says the command accepts seed_file_or_content and the MCP tool already supports inline seed_content.
Why this looks like a real bug
Current repo contracts point in the same direction:
skills/run/SKILL.md documents /ouroboros:run [seed_file_or_content]
- The same skill explicitly says inline YAML should be used directly
ouroboros_execute_seed accepts both seed_content and seed_path
So the router dropping multiline inline content appears to be a contract mismatch in the shared dispatch layer, not just user confusion.
Reproduction on current main
from ouroboros.router import resolve_skill_dispatch
prompt = "/ouroboros:run\ngoal: test\nconstraints:\n - keep it simple\nacceptance_criteria:\n - works"
result = resolve_skill_dispatch(prompt, cwd="/tmp")
print(result)
Actual result:
NotHandled(reason='not a skill command', ...)
Expected result:
- deterministic dispatch to the
run skill
- the inline YAML forwarded as the payload for the underlying MCP tool call
Root cause
The shared parser introduced in #459 only matches a single-line remainder after the skill prefix. Once the remainder contains real newlines, the prompt falls out of the intercept path before the run skill can decide whether the payload is a file path or inline YAML.
Impact
This affects every runtime that now uses the shared router from #459:
- Codex CLI
- Hermes
- OpenCode
It also means the documented seed_file_or_content contract is only partially true in practice: single-line inputs work, real multiline seed content does not.
Acceptance criteria
/ouroboros:run recognizes multiline inline YAML as a valid dispatch payload
- regression coverage exists at the router level
- the resulting resolved payload preserves the multiline content exactly
Notes
I have a local patch and passing router tests for this path if maintainers agree that the intended contract is indeed inline-content support rather than path-only behavior.
Summary
The shared deterministic router does not dispatch multiline inline seed content for
/ouroboros:run, even though the run skill contract says the command acceptsseed_file_or_contentand the MCP tool already supports inlineseed_content.Why this looks like a real bug
Current repo contracts point in the same direction:
skills/run/SKILL.mddocuments/ouroboros:run [seed_file_or_content]ouroboros_execute_seedaccepts bothseed_contentandseed_pathSo the router dropping multiline inline content appears to be a contract mismatch in the shared dispatch layer, not just user confusion.
Reproduction on current
mainActual result:
Expected result:
runskillRoot cause
The shared parser introduced in #459 only matches a single-line remainder after the skill prefix. Once the remainder contains real newlines, the prompt falls out of the intercept path before the run skill can decide whether the payload is a file path or inline YAML.
Impact
This affects every runtime that now uses the shared router from #459:
It also means the documented
seed_file_or_contentcontract is only partially true in practice: single-line inputs work, real multiline seed content does not.Acceptance criteria
/ouroboros:runrecognizes multiline inline YAML as a valid dispatch payloadNotes
I have a local patch and passing router tests for this path if maintainers agree that the intended contract is indeed inline-content support rather than path-only behavior.