plugins/ruflo-deepseek-harness/skills/deepseek-chat/SKILL.md
Wraps DeepSeek's chat/completions endpoint in the same subprocess-invocation
shape as the other ruflo-*-harness skills (see ruflo-metaharness's
harness-score for the reference). No library import on ruflo's boot path.
deepseek-reason instead — same plugin, different model.Implementation: scripts/chat.mjs.
DEEPSEEK_API_KEY from env. If missing, emit
{ status: 'degraded', reason: 'DEEPSEEK_API_KEY is not set', ... }
and exit 0 (ADR-150-style graceful degradation).https://api.deepseek.com/v1/chat/completions with
{ model, messages, temperature?, max_tokens? }. 60s hard timeout.choices[0].message.content and usage counters.--format table prints only the content (for piping); --format json
(default) returns the full envelope.--alert-on-error exits 1 on any degraded/error status (CI-friendly).node plugins/ruflo-deepseek-harness/scripts/chat.mjs \
--prompt "In one sentence: what is HNSW?" \
--temperature 0.2
Sample output:
{
"status": "ok",
"model": "deepseek-chat",
"content": "HNSW is a graph-based approximate nearest neighbor …",
"finishReason": "stop",
"usage": { "promptTokens": 12, "completionTokens": 34, "totalTokens": 46 }
}