<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Nika · Notes from the source</title>
    <link>https://nika.sh/blog</link>
    <atom:link href="https://nika.sh/rss.xml" rel="self" type="application/rss+xml" />
    <description>Long-form pedagogy on Intent as Code: why useful AI work belongs in a file, why the language locks at four verbs, and what local-first actually buys you.</description>
    <language>en</language>
    <item>
      <title>Prompts are code now</title>
      <link>https://nika.sh/blog/prompts-are-code</link>
      <guid isPermaLink="true">https://nika.sh/blog/prompts-are-code</guid>
      <pubDate>Wed, 08 Jul 2026 09:00:00 GMT</pubDate>
      <category>Language</category>
      <description>Prompt versioning without a platform: the prompt lives in the workflow file, so git diffs it, a PR reviews it, git reverts it — and the engine itself names an edited prompt when two runs diverge.</description>
    </item>
    <item>
      <title>The prompt injection that goes nowhere</title>
      <link>https://nika.sh/blog/injection-goes-nowhere</link>
      <guid isPermaLink="true">https://nika.sh/blog/injection-goes-nowhere</guid>
      <pubDate>Wed, 08 Jul 2026 09:00:00 GMT</pubDate>
      <category>Security</category>
      <description>AI agent security without a runtime guard: the plan is authored before the model runs, so a hostile note becomes data, never a new action — and the boundary is checked before a token is spent.</description>
    </item>
    <item>
      <title>The run becomes evidence</title>
      <link>https://nika.sh/blog/the-run-becomes-evidence</link>
      <guid isPermaLink="true">https://nika.sh/blog/the-run-becomes-evidence</guid>
      <pubDate>Tue, 07 Jul 2026 09:00:00 GMT</pubDate>
      <category>Engine</category>
      <description>Every journal line now carries a hash chain — verify names the first broken link, reproduce classifies every task, and the journal attests which engine wrote it. Trust, but verify. Then verify.</description>
    </item>
    <item>
      <title>Time travel, for real</title>
      <link>https://nika.sh/blog/time-travel-for-real</link>
      <guid isPermaLink="true">https://nika.sh/blog/time-travel-for-real</guid>
      <pubDate>Mon, 06 Jul 2026 09:00:00 GMT</pubDate>
      <category>Engine</category>
      <description>Every debugger replays the past by re-running it. Nika's past is a file — so stepping backward is free, breakpoints live in your YAML, and F5 debugs a run that already happened.</description>
    </item>
    <item>
      <title>The editor tells the truth</title>
      <link>https://nika.sh/blog/the-editor-tells-the-truth</link>
      <guid isPermaLink="true">https://nika.sh/blog/the-editor-tells-the-truth</guid>
      <pubDate>Mon, 06 Jul 2026 09:00:00 GMT</pubDate>
      <category>Engine</category>
      <description>A green badge is a claim. We audited the editor extension against the engine the way you'd audit a client against a server — and found the badge lying. Here is the contract that keeps it honest now.</description>
    </item>
    <item>
      <title>The credentials your pipeline was breaking</title>
      <link>https://nika.sh/blog/the-credentials-your-pipeline-breaks</link>
      <guid isPermaLink="true">https://nika.sh/blog/the-credentials-your-pipeline-breaks</guid>
      <pubDate>Mon, 06 Jul 2026 09:00:00 GMT</pubDate>
      <category>Security</category>
      <description>OpenAI and Google sign the images their APIs return. Almost every pipeline that touches those files silently converts the signature into evidence of tampering — including, until this week, ours.</description>
    </item>
    <item>
      <title>One wire, five servers</title>
      <link>https://nika.sh/blog/one-wire-five-servers</link>
      <guid isPermaLink="true">https://nika.sh/blog/one-wire-five-servers</guid>
      <pubDate>Mon, 06 Jul 2026 09:00:00 GMT</pubDate>
      <category>Sovereignty</category>
      <description>The self-hosted media world quietly standardized on OpenAI's wire shapes. That accident of history is the best sovereignty news in years — and Nika's media builtins are built on it.</description>
    </item>
    <item>
      <title>Media are workflow citizens</title>
      <link>https://nika.sh/blog/media-are-workflow-citizens</link>
      <guid isPermaLink="true">https://nika.sh/blog/media-are-workflow-citizens</guid>
      <pubDate>Mon, 06 Jul 2026 09:00:00 GMT</pubDate>
      <category>Engine</category>
      <description>Images and speech now render inside workflows under the same discipline as everything else: permit-gated saves, sha256 provenance, honest warnings, real cost on the ledger — and the sovereign path first.</description>
    </item>
    <item>
      <title>The trace you can replay</title>
      <link>https://nika.sh/blog/the-trace-you-can-replay</link>
      <guid isPermaLink="true">https://nika.sh/blog/the-trace-you-can-replay</guid>
      <pubDate>Sun, 05 Jul 2026 09:00:00 GMT</pubDate>
      <category>Engine</category>
      <description>Every run leaves a flight recorder: a deterministic AI audit trail you can replay like a film, never re-execute by accident.</description>
    </item>
    <item>
      <title>The secrets line</title>
      <link>https://nika.sh/blog/the-secrets-line</link>
      <guid isPermaLink="true">https://nika.sh/blog/the-secrets-line</guid>
      <pubDate>Sun, 05 Jul 2026 09:00:00 GMT</pubDate>
      <category>Security</category>
      <description>Information-flow, audited before it flows: how the checker proves a secret cannot leak into a prompt, a file, or a host.</description>
    </item>
    <item>
      <title>The cost line</title>
      <link>https://nika.sh/blog/the-cost-line</link>
      <guid isPermaLink="true">https://nika.sh/blog/the-cost-line</guid>
      <pubDate>Sun, 05 Jul 2026 09:00:00 GMT</pubDate>
      <category>Engine</category>
      <description>The audit prices every token before it is spent: ceilings on generations, budgets on loops, and a $0.00 that means it.</description>
    </item>
    <item>
      <title>Anatomy of a verb</title>
      <link>https://nika.sh/blog/anatomy-of-a-verb</link>
      <guid isPermaLink="true">https://nika.sh/blog/anatomy-of-a-verb</guid>
      <pubDate>Sun, 05 Jul 2026 09:00:00 GMT</pubDate>
      <category>Language</category>
      <description>infer, exec, invoke, agent: what makes the four verbs genuinely different execution models, in the engine's own verdicts.</description>
    </item>
    <item>
      <title>No cloud needed</title>
      <link>https://nika.sh/blog/own-your-stack</link>
      <guid isPermaLink="true">https://nika.sh/blog/own-your-stack</guid>
      <pubDate>Thu, 02 Jul 2026 09:00:00 GMT</pubDate>
      <category>Sovereignty</category>
      <description>One Rust binary, your models, your files. Run LLMs locally and see what local-first actually buys you.</description>
    </item>
    <item>
      <title>The plan you get for free</title>
      <link>https://nika.sh/blog/dag-for-free</link>
      <guid isPermaLink="true">https://nika.sh/blog/dag-for-free</guid>
      <pubDate>Mon, 29 Jun 2026 09:00:00 GMT</pubDate>
      <category>Engine</category>
      <description>depends_on is all you write. The orchestration falls out of the graph: parallel waves, drawn before anything runs.</description>
    </item>
    <item>
      <title>Four verbs are enough</title>
      <link>https://nika.sh/blog/four-verbs</link>
      <guid isPermaLink="true">https://nika.sh/blog/four-verbs</guid>
      <pubDate>Mon, 22 Jun 2026 09:00:00 GMT</pubDate>
      <category>Language</category>
      <description>A verb is a distinct execution model, not a feature. Why the language locks at four, forever.</description>
    </item>
    <item>
      <title>Intent as Code: why your AI work should be a file</title>
      <link>https://nika.sh/blog/intent-as-code</link>
      <guid isPermaLink="true">https://nika.sh/blog/intent-as-code</guid>
      <pubDate>Mon, 15 Jun 2026 09:00:00 GMT</pubDate>
      <category>Manifesto</category>
      <description>Chats evaporate, files compound. The case for writing AI work down as source you own: your best prompts, versioned like code.</description>
    </item>
    <item>
      <title>The blast radius is part of the file</title>
      <link>https://nika.sh/blog/blast-radius-in-the-file</link>
      <guid isPermaLink="true">https://nika.sh/blog/blast-radius-in-the-file</guid>
      <pubDate>Thu, 04 Jun 2026 09:00:00 GMT</pubDate>
      <category>Security</category>
      <description>permits: is the whole list, guardrails an agent can't talk past. Everything not on it is denied before it runs, with a named error.</description>
    </item>
    <item>
      <title>A standard library, not a plugin store</title>
      <link>https://nika.sh/blog/standard-library-not-plugin-store</link>
      <guid isPermaLink="true">https://nika.sh/blog/standard-library-not-plugin-store</guid>
      <pubDate>Thu, 14 May 2026 09:00:00 GMT</pubDate>
      <category>Language</category>
      <description>25 builtins in the binary, allow-listed, nothing to install. The library grows, the language holds still.</description>
    </item>
    <item>
      <title>An open spec, a copyleft engine</title>
      <link>https://nika.sh/blog/open-spec-copyleft-engine</link>
      <guid isPermaLink="true">https://nika.sh/blog/open-spec-copyleft-engine</guid>
      <pubDate>Fri, 01 May 2026 09:00:00 GMT</pubDate>
      <category>Sovereignty</category>
      <description>Two licenses, one argument: the file must outlive every vendor, including us.</description>
    </item>
    <item>
      <title>Starting over, on purpose</title>
      <link>https://nika.sh/blog/starting-over-on-purpose</link>
      <guid isPermaLink="true">https://nika.sh/blog/starting-over-on-purpose</guid>
      <pubDate>Tue, 14 Apr 2026 09:00:00 GMT</pubDate>
      <category>Origins</category>
      <description>We had a working prototype. We rebuilt from scratch anyway: craft, not extraction, one gate at a time.</description>
    </item>
    <item>
      <title>Naming the drum</title>
      <link>https://nika.sh/blog/naming-the-drum</link>
      <guid isPermaLink="true">https://nika.sh/blog/naming-the-drum</guid>
      <pubDate>Sat, 21 Mar 2026 09:00:00 GMT</pubDate>
      <category>Origins</category>
      <description>Why a workflow engine carries the name of a liberation god, and a butterfly on every commit.</description>
    </item>
    <item>
      <title>The note that started it</title>
      <link>https://nika.sh/blog/the-note-that-started-it</link>
      <guid isPermaLink="true">https://nika.sh/blog/the-note-that-started-it</guid>
      <pubDate>Fri, 17 Oct 2025 09:00:00 GMT</pubDate>
      <category>Origins</category>
      <description>Before the spec, before the name, there was one evening note: the best AI work of the month had just disappeared.</description>
    </item>
  </channel>
</rss>
