From nika
Converts existing automation (shell scripts, Python glue, Makefile targets, CI jobs, prompt chains) into auditable .nika.yaml workflows. Use when a script wraps LLM calls, HTTP/file plumbing, or needs cost bounds and replayable traces.
How this skill is triggered — by the user, by Claude, or both
Slash command
/nika:nika-migrationThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
A script runs; a workflow is **audited before it runs, bounded while
A script runs; a workflow is audited before it runs, bounded while it runs, and proven after it runs. Migration is not translation — it is re-declaring the intent so the checker can see it.
Migrate when the automation: calls an LLM anywhere · chains HTTP/file/JSON steps around AI output · is repeated (cron, CI, "run this every release") · needs a cost bound or an audit trail · is handed to someone else to run.
Do NOT migrate: one-shot commands · interactive debugging sessions ·
sub-second pure-shell pipelines with zero AI and zero HTTP (a
Makefile that only compiles code is already in its best form).
| In the script | In the workflow |
|---|---|
| a step / function | one task, exactly one verb |
curl / wget / fetch() helper | invoke: tool: "nika:fetch" — for an API, set mode: raw or mode: jq (the default markdown mode is for pages and escapes JSON bodies) |
curl … | jq in one breath | ONE fetch task: mode: jq + jq: '<expression>' — the shape rides the fetch |
jq / sed on JSON | nika:jq (arg name is expression), or an output: binding |
cat / cp / mkdir / tee | nika:read / nika:write (create_dirs: true) |
| in-place file edits | nika:edit |
the LLM call (SDK, curl to an API) | infer: with prompt, schema?, max_tokens |
| an agent loop (retry-until-good) | agent: with tools allowlist + max_turns |
| a retry/backoff loop around a flaky call | retry: on the task — max_attempts + backoff_strategy: exponential + jitter: true (transient provider/network errors only; a wrong prompt never heals by retry) |
for item in … | for_each: fan-out |
if <condition> | a when: gate |
$1, $ENV_VAR parameters | vars: + --var key=value · ${{ env.KEY }} |
API_KEY=… literals | ${{ secrets.X }} + secrets: block with its egress: sink |
| step B reads step A's output | with: { a: ${{ tasks.A.output }} } on B — the binding IS the edge — then ${{ with.a }} in the body |
| step B only waits for step A (no data) | after: { A: succeeded } (terminal for cleanup/notify paths) |
| the irreversible step (deploy, send, publish) | a confirm gate before it (nika:prompt) — human answers at run time |
| what no builtin/MCP covers (git, build tools) | exec: + a row in the exec ledger |
nika new --from '?' lists the embedded
set; pick the OUTER shape (chain · fanout · gate-and-act ·
etl-state · agent-loop · human-gated-ship) and instantiate with
nika new --from <template> <file>.nika.yaml.invoke: nika:*
→ invoke: mcp:<server>/<tool> → exec: last. Every surviving
exec: gets its ledger row (task · command · why no native path ·
unlock that removes it).model: mock/echo while the structure
settles — nika check <file> after every change, repair from the
diagnostics until exit 0, then --native-strict.nika check <file> --infer-permits →
paste the permits: block. The script trusted its author; the
workflow trusts nobody by default.nika run <file> --model mock/echo (or a local model) side by
side on the same input; compare the artifacts. Then pin:
nika test <file> --update writes the golden.nika run <file> --var … --max-cost-usd <n>). The human
decides when the old script retires — never delete it yourself.exec: node helper.mjs) is
not a migration — that is native-first/005. Unbundle the helper
into fetch/jq/read/write tasks.${{ tasks.X.output }} reference so the checker can trace it.|| true); workflows should not. If the
source ignored a failure, ask whether that was intent or debt —
default to letting the task fail loudly.npx claudepluginhub supernovae-st/nika --plugin nika2plugins reuse this skill
First indexed Jul 14, 2026
Automates repeatable AI tasks as auditable YAML workflows with cost ceilings and tamper-evident traces. Useful for running budgeted, checked AI pipelines.
Authors, checks, and repairs Nika workflow files (.nika.yaml). Use when writing or editing workflows, converting AI tasks into workflows, or fixing NIKA-XXXX findings from nika check.
Runs repeatable AI tasks as checked, budgeted workflow files (.nika.yaml). Use for deterministic multi-step pipelines, cost-capped runs, or tasks that need audit traces.