Imported from ruvnet/ruflo (
plugins/ruflo-ruvllm/skills/chat-format/SKILL.md) via skills.sh. Install upstream withnpx skills add ruvnet/ruflo --skill chat-format. Copyright stays with the author.
Chat Format
Format prompts for multi-provider LLM inference with context retrieval.
When to use
When you need a prompt string in a local model's chat template (for llama.cpp, Ollama or another local runtime), or a small embedding-based router over a handful of patterns. It does not call a model and it does not format for hosted APIs: Anthropic, OpenAI and Gemini take structured messages, not a template string.
Steps
- Format chat — call
mcp__plugin_ruflo-core_ruflo__ruvllm_chat_formatwithmessages([{role, content}]) andtemplate: one ofllama3,mistral,chatml,phi,gemma, or a model id to auto-detect. Both fields are required. It returns the formatted string. It needs@ruvector/ruvllm-wasm(npm i -g @ruvector/ruvllm-wasm); without it the call fails with an install hint. - Create a router (optional) —
ruvllm_hnsw_createwithdimensions(for example 384),maxPatterns,efSearch. The WASM router holds about 11 patterns at most (ruvllm-wasm v2.0.1), so use it for routing between a few named intents, not for document retrieval. For real document search usememory_searchor theruflo-rag-memoryplugin. - Add patterns —
ruvllm_hnsw_addwithrouterId, aname, and anembeddingwhose length equals the router's dimensions (you produce the embedding, for example withembeddings_generate). - Route a query —
ruvllm_hnsw_routewithrouterId, the queryembedding, andk(default 3). - Check status —
ruvllm_statusshows whether the WASM module loaded. Routers live in the MCP server process only; they are gone when it restarts.
