← ClaudeAtlas

nika-migrationlisted

Convert existing automation — shell scripts, Python glue, Makefile targets, CI jobs, prompt chains in docs — into checkable .nika.yaml workflows. Use when a script wraps LLM calls or HTTP/file plumbing, a prompt chain lives in a README or notebook, or ad-hoc automation needs audit, cost bounds and replayable traces.
supernovae-st/nika-agents · ★ 2 · AI & Automation · score 65
Install: claude install-skill supernovae-st/nika-agents
# Migrating existing automation to Nika 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. ## When to migrate (and when not to) 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). ## The mapping table | 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