원클릭으로
llm-router
Picks and calls the LLM provider based on task type, reading PROVIDERS.md and .env to stay provider-agnostic
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Picks and calls the LLM provider based on task type, reading PROVIDERS.md and .env to stay provider-agnostic
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Unified public entrypoint for Simplicio's body-of-work orchestration: core + loop in one command. Use when the user types /simplicio-loop, says "ralph loop", "keep iterating until done", "finish all open issues", or asks to drain a queue of work autonomously. Runtime-agnostic: binds a real stop-hook where the host supports hooks (Claude, Cursor); otherwise self-paces via the host scheduler. The older /simplicio-tasks surface is a legacy alias; never escape the loop with a false promise.
Legacy compatibility alias for `/simplicio-loop`. Use only when an older install, adapter, or saved prompt still invokes `/simplicio-tasks`; immediately route the run through `.claude/skills/simplicio-loop/SKILL.md`, which now owns the public core + loop protocol.
One-shot bootstrap skill that wires HyperFrames (https://github.com/wesleysimplicio/hyperframes) into a marketing-engine clone as a first-class video provider — the three runtime skills, the provider class + mock, the routing matrix rows, env vars, and CLAUDE.md updates. Idempotent. Invoke when a fresh clone needs HyperFrames added, or when reapplying the integration after a rebase that dropped any piece of it.
Runs the HyperFrames CLI dev loop — init, lint, inspect, preview, render — for compositions authored under the `hyperframes` skill. Invoked after the composition HTML is on disk and before the piece is marked complete.
Translates a marketing-engine piece brief into the input shape the `hyperframes` skill expects (composition spec) and the flags the `hyperframes-cli` skill needs to render it. Selected by `video-prompt-builder` when the routing matrix resolves to the `hyperframes` provider.
Author HTML-as-source-of-truth motion compositions (kinetic type, motion quote cards, programmatic data-viz reels) for the HyperFrames renderer. Used whenever the video provider resolved by the routing matrix is `hyperframes`.
| name | llm-router |
| description | Picks and calls the LLM provider based on task type, reading PROVIDERS.md and .env to stay provider-agnostic |
| version | 0.1.0 |
Critical skill that every other text-generating skill calls first. Decides which LLM provider runs a given task without hardcoding the provider in any caller. Reads .specs/architecture/PROVIDERS.md and .env to map task type to provider, runs the call, logs usage, and falls back if the primary fails.
provider_override block and the caller wants the override honored.task: string. One of orchestration, code_generation, caption, script, compliance, translation, humanization, or any custom task key registered in PROVIDERS.md.prompt: string. Final composed prompt ready for the model.system: string, optional. System message to scope behavior.max_tokens: integer, optional. Cap on response length.temperature: number, optional. Sampling temperature.provider_override: string, optional. Forces a specific provider id, bypassing the routing matrix.piece_path: string, optional. Path to a .specs/pieces/*.md file that may declare its own override.dry_run: boolean, optional. When true, returns the resolved provider and prompt without calling the model..env and resolve LLM_DEFAULT, LLM_FALLBACK, LLM_CHEAP, and provider keys..specs/architecture/PROVIDERS.md LLM matrix into a task -> {default, fallback} map.piece_path is set, read it and look for provider_override.llm_text. If present, use it.provider_override arg is set, use it.task in the matrix and pick the default. If task is unknown, fall back to LLM_DEFAULT..env. If missing, drop to the fallback.dry_run is true, return { provider, prompt, system, would_call: true } and stop.lib/providers/llm.ts factory. Catch network and quota errors.data/llm-usage.jsonl with timestamp, task, provider used, tokens in/out, estimated cost, and outcome.text: string. Model response.provider_used: string. The provider that actually ran.tokens_in: integer.tokens_out: integer.cost_estimate_usd: number.fallback_triggered: boolean.Input: { task: "caption", prompt: "Hook for IG reel about color analysis" }
Output: { text: "Color is your unfair advantage", provider_used: "deepseek", tokens_in: 12, tokens_out: 7, cost_estimate_usd: 0.0001, fallback_triggered: false }
Input: { task: "caption", prompt: "...", piece_path: ".specs/pieces/2026-05-launch.md" } where the piece declares provider_override.llm_text: claude.
Output: { text: "...", provider_used: "claude", fallback_triggered: false }
.env.example.LLM_DEFAULT.data/llm-usage.jsonl with outcome: "failed".copywriter-curto: short copy generator that calls llm-router with task: caption.compliance-<active-client>: optional client-specific compliance auditor that calls llm-router with task: compliance.compliance-generic: same routing pattern for cross-vertical audits.revisao-humanizada: humanizer step that calls llm-router with task: humanization.caption-multi-platform: fans out platform variants, each call routed through llm-router.