<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Side Project on ICE-ICE-BEAR-BLOG</title><link>https://ice-ice-bear.github.io/tags/side-project/</link><description>Recent content in Side Project on ICE-ICE-BEAR-BLOG</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Fri, 08 May 2026 00:00:00 +0900</lastBuildDate><atom:link href="https://ice-ice-bear.github.io/tags/side-project/index.xml" rel="self" type="application/rss+xml"/><item><title>NEKOWORK — A Verified Autopilot for AI Code Changes</title><link>https://ice-ice-bear.github.io/posts/2026-05-08-nekowork/</link><pubDate>Fri, 08 May 2026 00:00:00 +0900</pubDate><guid>https://ice-ice-bear.github.io/posts/2026-05-08-nekowork/</guid><description>&lt;img src="https://ice-ice-bear.github.io/" alt="Featured image of post NEKOWORK — A Verified Autopilot for AI Code Changes" /&gt;&lt;h2 id="overview"&gt;Overview
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://github.com/Ps-Neko/NEKOWORK" target="_blank" rel="noopener"
 &gt;Ps-Neko/NEKOWORK&lt;/a&gt; is a solo-developer &lt;a class="link" href="https://www.npmjs.com/package/@ps-neko/nekowork" target="_blank" rel="noopener"
 &gt;npm package&lt;/a&gt; first pushed on 2026-04-29 and bumped to &lt;code&gt;0.1.0-alpha.8&lt;/code&gt; on 2026-05-08. The name is cute; the positioning is serious — &lt;strong&gt;&amp;ldquo;Verified Autopilot for AI code changes.&amp;rdquo;&lt;/strong&gt; It sits as a one-layer runtime on top of &lt;a class="link" href="https://www.anthropic.com/claude-code" target="_blank" rel="noopener"
 &gt;Claude Code&lt;/a&gt;, &lt;a class="link" href="https://github.com/openai/codex" target="_blank" rel="noopener"
 &gt;Codex CLI&lt;/a&gt;, &lt;a class="link" href="https://cursor.com" target="_blank" rel="noopener"
 &gt;Cursor&lt;/a&gt;, &lt;a class="link" href="https://github.com/google-gemini/gemini-cli" target="_blank" rel="noopener"
 &gt;Gemini CLI&lt;/a&gt;, and &lt;a class="link" href="https://opencode.ai" target="_blank" rel="noopener"
 &gt;OpenCode&lt;/a&gt;, forcing every AI-authored change to &lt;strong&gt;produce evidence, pass independent verification, and earn explicit human approval&lt;/strong&gt; before it can touch a repo. The unusual move: it doesn&amp;rsquo;t compete on agent-catalog size. It competes on the verification loop itself.&lt;/p&gt;
&lt;pre class="mermaid" style="visibility:hidden"&gt;graph TD
 Task["User task &amp;lt;br/&amp;gt; nekowork auto"] --&gt; Build["build &amp;lt;br/&amp;gt; (single executor)"]
 Build --&gt; Verify["verify &amp;lt;br/&amp;gt; (independent Codex review)"]
 Verify --&gt; Repair{"fixable?"}
 Repair --&gt;|yes| Build
 Repair --&gt;|no| Report["report &amp;lt;br/&amp;gt; REPORT.md"]
 Report --&gt; Gate{"Human Gate"}
 Gate --&gt;|approve| Apply["apply &amp;lt;br/&amp;gt; (explicit command)"]
 Gate --&gt;|block| Stop["NO_SHIP"]
 Apply --&gt; Done["git apply --3way &amp;lt;br/&amp;gt; commit/push is human's"]&lt;/pre&gt;&lt;h2 id="1-what-nekowork-refuses-first"&gt;1. What NEKOWORK refuses first
&lt;/h2&gt;&lt;p&gt;The first screen of the &lt;a class="link" href="https://github.com/Ps-Neko/NEKOWORK#readme" target="_blank" rel="noopener"
 &gt;README&lt;/a&gt; is the product pitch:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;No auto-commit. No auto-push. No surprise deploy.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;While &lt;a class="link" href="https://docs.cursor.com/composer/overview" target="_blank" rel="noopener"
 &gt;Cursor&amp;rsquo;s Composer auto mode&lt;/a&gt;, &lt;a class="link" href="https://aider.chat/docs/usage/commands.html" target="_blank" rel="noopener"
 &gt;Aider&amp;rsquo;s auto-commit default&lt;/a&gt;, and full-auto agents like &lt;a class="link" href="https://devin.ai" target="_blank" rel="noopener"
 &gt;Devin&lt;/a&gt; all brag about &amp;ldquo;the human never touches a button and a PR appears,&amp;rdquo; NEKOWORK rejects exactly that posture. &lt;code&gt;apply&lt;/code&gt; is &lt;strong&gt;always a separate command&lt;/strong&gt;, and the &lt;code&gt;auto&lt;/code&gt; command &lt;strong&gt;explicitly refuses the &lt;code&gt;--apply&lt;/code&gt; flag&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;What it produces instead is evidence: &lt;code&gt;work-summary.json&lt;/code&gt;, &lt;code&gt;verify-summary.json&lt;/code&gt;, &lt;code&gt;ship-summary.json&lt;/code&gt;, &lt;code&gt;gate-summary.json&lt;/code&gt;, and the human-facing first screen, &lt;code&gt;REPORT.md&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="2-one-manifest-five-surfaces"&gt;2. One manifest, five surfaces
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://github.com/Ps-Neko/NEKOWORK/blob/main/agent.yaml" target="_blank" rel="noopener"
 &gt;&lt;code&gt;agent.yaml&lt;/code&gt;&lt;/a&gt; is the source of truth. Agents, skills, hooks, profiles, modules, and MCP pins all live there, and builder scripts project them into five harness directories:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Target&lt;/th&gt;
 &lt;th&gt;Output dir&lt;/th&gt;
 &lt;th&gt;Builder&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Claude Code&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;.claude/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;scripts/build-claude.js&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Codex CLI&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;.codex/config.toml&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;scripts/build-codex.js&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Cursor&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;.cursor/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;scripts/build-cursor.js&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Gemini CLI&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;.gemini/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;scripts/build-gemini.js&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;OpenCode&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;.opencode/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;scripts/build-opencode.js&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The pattern follows the &lt;code&gt;gitagent/0.1.0&lt;/code&gt; spec declared at the top of &lt;code&gt;agent.yaml&lt;/code&gt;. Similar ideas appear in &lt;a class="link" href="https://hub.continue.dev" target="_blank" rel="noopener"
 &gt;continue.dev&amp;rsquo;s hub&lt;/a&gt; and &lt;a class="link" href="https://docs.anthropic.com/en/docs/build-with-claude/skills" target="_blank" rel="noopener"
 &gt;Anthropic&amp;rsquo;s Skills&lt;/a&gt;, but NEKOWORK takes a stronger position: &lt;strong&gt;the per-harness catalog is a build artifact&lt;/strong&gt;. If a specific harness dies, the manifest survives.&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://github.com/Ps-Neko/NEKOWORK/blob/main/SOUL.md" target="_blank" rel="noopener"
 &gt;SOUL.md&lt;/a&gt; puts it in one line — &amp;ldquo;Even if Claude Code disappears, the same catalog must run on Codex, Cursor, Gemini, OpenCode, or an internal LLM.&amp;rdquo;&lt;/p&gt;
&lt;h2 id="3-the-core-invariant--one-executor-one-verifier"&gt;3. The core invariant — one executor, one verifier
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://github.com/Ps-Neko/NEKOWORK/blob/main/docs/ARCHITECTURE.md#product-invariants" target="_blank" rel="noopener"
 &gt;ARCHITECTURE.md&lt;/a&gt; nails it down:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Multi-worker phases are &lt;strong&gt;read-only by default&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Only &lt;strong&gt;one executor&lt;/strong&gt; may mutate project files in a work cycle&lt;/li&gt;
&lt;li&gt;Codex review is the &lt;strong&gt;default independent verification path&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Sensitive changes require a &lt;a class="link" href="https://github.com/Ps-Neko/NEKOWORK/blob/main/agents" target="_blank" rel="noopener"
 &gt;Codex challenge&lt;/a&gt; or Human Gate&lt;/li&gt;
&lt;li&gt;Profiles may add capabilities but cannot weaken safety gates&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;code&gt;team&lt;/code&gt; command lets multiple workers think in parallel, but the output is a &lt;strong&gt;read-only handoff&lt;/strong&gt;. The actual mutation happens in &lt;code&gt;work&lt;/code&gt;, where a single executor owns writes. This is why NEKOWORK refuses to become &amp;ldquo;yet another 100-agent pack&amp;rdquo; — the promise isn&amp;rsquo;t catalog size, it&amp;rsquo;s &lt;strong&gt;mutation singularity&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The idea borrows from system-design patterns like &lt;a class="link" href="https://git-scm.com/docs/index-format" target="_blank" rel="noopener"
 &gt;git&amp;rsquo;s single-writer index&lt;/a&gt; and &lt;a class="link" href="https://martin.kleppmann.com/2017/03/27/designing-data-intensive-applications.html" target="_blank" rel="noopener"
 &gt;single-leader replication in databases&lt;/a&gt;, but applied to the AI agent layer. Once you&amp;rsquo;ve watched a &lt;a class="link" href="https://github.com/microsoft/autogen" target="_blank" rel="noopener"
 &gt;multi-agent framework&lt;/a&gt; hit conflicts where two agents touch the same file, this decision makes sense.&lt;/p&gt;
&lt;h2 id="4-cli-surface--deliberately-small"&gt;4. CLI surface — deliberately small
&lt;/h2&gt;&lt;p&gt;The &lt;a class="link" href="https://github.com/Ps-Neko/NEKOWORK/blob/main/docs/ARCHITECTURE.md#public-flow" target="_blank" rel="noopener"
 &gt;public commands&lt;/a&gt; you see in &lt;code&gt;nekowork --help&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;check — local readiness check
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ask — clarify goal/scope/risk without provider calls
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;plan — create a planning handoff
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;team — read-only multi-worker handoffs
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;work — single-executor implementation + isolated diff
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;verify — Codex-only verification
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;gate — Human Gate approve/block
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ship — ship/no-ship readiness
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;report — write REPORT.md (no project mutation)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apply — apply a verified SHIP_READY diff explicitly
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;run — work -&amp;gt; verify -&amp;gt; ship bundle
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;build — one-command builder wrapper (fast/safe/team/tdd/release)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;auto — bounded autonomy before the apply boundary
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Compare this to the command surface of &lt;a class="link" href="https://aider.chat" target="_blank" rel="noopener"
 &gt;Aider&lt;/a&gt; or &lt;a class="link" href="https://www.anthropic.com/claude-code" target="_blank" rel="noopener"
 &gt;Claude Code&lt;/a&gt;. Aider is closer to interactive chat; Claude Code is slash commands plus skills. NEKOWORK makes &lt;strong&gt;each pipeline stage an explicit CLI command&lt;/strong&gt;. &lt;code&gt;work&lt;/code&gt; doesn&amp;rsquo;t run &lt;code&gt;verify&lt;/code&gt;, &lt;code&gt;verify&lt;/code&gt; doesn&amp;rsquo;t run &lt;code&gt;ship&lt;/code&gt;, and &lt;code&gt;ship&lt;/code&gt; will never &lt;code&gt;apply&lt;/code&gt;. This is the Unix philosophy — &lt;strong&gt;each command does one job&lt;/strong&gt; — applied to AI agent workflows.&lt;/p&gt;
&lt;h2 id="5-risk-classifier-and-mode-safety"&gt;5. Risk classifier and mode safety
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;manifests/build-modes.json&lt;/code&gt; lists the safety ordering of the five modes (&lt;code&gt;fast&lt;/code&gt;, &lt;code&gt;safe&lt;/code&gt;, &lt;code&gt;team&lt;/code&gt;, &lt;code&gt;tdd&lt;/code&gt;, &lt;code&gt;release&lt;/code&gt;), and &lt;code&gt;build&lt;/code&gt; auto-classifies the task to pick the right one. Crucially, it &lt;strong&gt;refuses explicit downgrades&lt;/strong&gt; — the README example:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;build &lt;span class="s2"&gt;&amp;#34;change OAuth token validation&amp;#34;&lt;/span&gt; --mode fast
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Blocked: auto routing recommends `safe`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can override with &lt;code&gt;--force-mode&lt;/code&gt;, but that becomes a signed declaration (&amp;ldquo;I am deliberately accepting this downgrade&amp;rdquo;) and is recorded as evidence. The pattern echoes &lt;a class="link" href="https://docs.npmjs.com/cli/v10/configuring-npm/package-json#engines" target="_blank" rel="noopener"
 &gt;npm semver strict mode&lt;/a&gt; and &lt;a class="link" href="https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/" target="_blank" rel="noopener"
 &gt;Kubernetes admission controllers&lt;/a&gt; — safe by default, override is explicit, override is auditable.&lt;/p&gt;
&lt;h2 id="6-provider-auth--long-lived-api-keys-blocked-by-default"&gt;6. Provider auth — long-lived API keys blocked by default
&lt;/h2&gt;&lt;p&gt;A telling detail. NEKOWORK defaults to &lt;a class="link" href="https://github.com/Ps-Neko/NEKOWORK/blob/main/docs/AUTH-MIGRATION.md" target="_blank" rel="noopener"
 &gt;delegated CLI auth&lt;/a&gt;. It uses local CLI sessions (&lt;code&gt;claude auth status&lt;/code&gt;, &lt;code&gt;codex login&lt;/code&gt;, &lt;code&gt;gemini&lt;/code&gt;) and &lt;strong&gt;blocks long-lived env vars&lt;/strong&gt; like &lt;code&gt;ANTHROPIC_API_KEY&lt;/code&gt;, &lt;code&gt;OPENAI_API_KEY&lt;/code&gt;, &lt;code&gt;GEMINI_API_KEY&lt;/code&gt; before provider calls.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Risk: provider-auth / long-lived-secret
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Codex verdict: request_changes
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Human Gate: required
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Explicit opt-in is required via &lt;code&gt;HARNESS_AUTH_ALLOW_ENV_OVERRIDE=1&lt;/code&gt;. This aligns with &lt;a class="link" href="https://docs.anthropic.com/en/api/getting-started#authentication" target="_blank" rel="noopener"
 &gt;Anthropic&amp;rsquo;s recommended security pattern&lt;/a&gt; and the trend documented in &lt;a class="link" href="https://www.gitguardian.com/state-of-secrets-sprawl-report-2024" target="_blank" rel="noopener"
 &gt;GitGuardian&amp;rsquo;s State of Secrets Sprawl&lt;/a&gt;. A solo developer making this the default from day one is rare.&lt;/p&gt;
&lt;h2 id="7-the-depth-of-a-solo-project--assessment"&gt;7. The depth of a solo project — assessment
&lt;/h2&gt;&lt;p&gt;NEKOWORK has zero stars and zero forks. And yet, for a one-person side project, the repo structure is &lt;strong&gt;abnormally deep&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;293 tests / 0 moderate+ npm audit issues&lt;/code&gt; — full CI on an alpha&lt;/li&gt;
&lt;li&gt;&lt;code&gt;docs/&lt;/code&gt; has 35+ files — ARCHITECTURE, SAFETY-GUARANTEES, TRUST-MODEL, WHY-NOT-AUTOPILOT, and more&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://www.contributor-covenant.org" target="_blank" rel="noopener"
 &gt;CODE_OF_CONDUCT.md&lt;/a&gt;, &lt;a class="link" href="https://github.com/Ps-Neko/NEKOWORK/blob/main/SECURITY.md" target="_blank" rel="noopener"
 &gt;SECURITY.md&lt;/a&gt;, &lt;a class="link" href="https://github.com/Ps-Neko/NEKOWORK/blob/main/CONTRIBUTING.md" target="_blank" rel="noopener"
 &gt;CONTRIBUTING.md&lt;/a&gt; — full OSS hygiene&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.mcp.json&lt;/code&gt;, &lt;code&gt;bridge/mcp-server.js&lt;/code&gt; — an &lt;a class="link" href="https://modelcontextprotocol.io" target="_blank" rel="noopener"
 &gt;MCP gateway&lt;/a&gt; baked in&lt;/li&gt;
&lt;li&gt;&lt;code&gt;8 case-study flows / 5 starter packs&lt;/code&gt; — real external-run evidence is being collected&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The competitive position becomes sharper next to peers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/cline/cline" target="_blank" rel="noopener"
 &gt;Cline&lt;/a&gt; — a million+ installs, interactive agent inside the IDE&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://aider.chat" target="_blank" rel="noopener"
 &gt;Aider&lt;/a&gt; — 30k stars, git-native AI pair programming&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://devin.ai" target="_blank" rel="noopener"
 &gt;Devin&lt;/a&gt; — closed-source full-auto agent&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://www.continue.dev" target="_blank" rel="noopener"
 &gt;continue.dev&lt;/a&gt; — IDE extension plus hub catalog&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/block/goose" target="_blank" rel="noopener"
 &gt;Block&amp;rsquo;s Goose&lt;/a&gt; — local agent framework&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All of them compete on &amp;ldquo;how fast/well does the AI write.&amp;rdquo; NEKOWORK competes on &lt;strong&gt;&amp;ldquo;how do we verify and stop what the AI wrote.&amp;rdquo;&lt;/strong&gt; As market positioning, it&amp;rsquo;s closer to &lt;a class="link" href="https://www.chef.io/products/chef-inspec" target="_blank" rel="noopener"
 &gt;Chef InSpec&lt;/a&gt; or &lt;a class="link" href="https://www.openpolicyagent.org" target="_blank" rel="noopener"
 &gt;Open Policy Agent&lt;/a&gt; — a compliance layer for AI agent runtimes.&lt;/p&gt;
&lt;h2 id="8-what-a-good-solo-side-project-looks-like"&gt;8. What a good solo side project looks like
&lt;/h2&gt;&lt;p&gt;NEKOWORK has zero stars and almost no external validation. To be honest, there&amp;rsquo;s a real chance this disappears within six months. But the reason this repo is worth a look anyway is &lt;strong&gt;how a single developer encoded their own invariants directly into the code&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Refused to chase catalog size&lt;/strong&gt; — the README front-loads &amp;ldquo;this is not a 100-agent pack.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Made the Human Gate unbypassable&lt;/strong&gt; — &lt;code&gt;auto&lt;/code&gt; rejecting &lt;code&gt;--apply&lt;/code&gt; is a code-level decision, not a doc-level recommendation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;One manifest, five harnesses&lt;/strong&gt; — built for a future where any one vendor tool dies.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Long-lived API keys blocked by default&lt;/strong&gt; — secret hygiene as the default from day one for a solo dev.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is a small version of &lt;a class="link" href="https://lkml.org/lkml/2000/8/25/132" target="_blank" rel="noopener"
 &gt;Linus&amp;rsquo;s &amp;ldquo;talk is cheap, show me the code&amp;rdquo;&lt;/a&gt;. Many people write about AI agent safety; far fewer &lt;strong&gt;bake their workflow invariants into CLI behavior&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="insights"&gt;Insights
&lt;/h2&gt;&lt;p&gt;Whether NEKOWORK survives in the market is open. The &lt;a class="link" href="https://www.npmjs.com/package/@ps-neko/nekowork" target="_blank" rel="noopener"
 &gt;&lt;code&gt;@ps-neko/nekowork@alpha&lt;/code&gt;&lt;/a&gt; package could be active in six months, or it could join the long tail of archived solo-dev repos. What&amp;rsquo;s clear is the takeaway: &lt;strong&gt;the next round of competition in AI coding tools may not be &amp;ldquo;how fast does it write,&amp;rdquo; but &amp;ldquo;how does it stop and how does it prove.&amp;rdquo;&lt;/strong&gt; While &lt;a class="link" href="https://docs.cursor.com/composer/overview" target="_blank" rel="noopener"
 &gt;Cursor Composer&lt;/a&gt;, &lt;a class="link" href="https://www.anthropic.com/claude-code" target="_blank" rel="noopener"
 &gt;Anthropic Claude Code&lt;/a&gt;, &lt;a class="link" href="https://github.com/features/copilot" target="_blank" rel="noopener"
 &gt;GitHub Copilot Workspace&lt;/a&gt;, and &lt;a class="link" href="https://devin.ai" target="_blank" rel="noopener"
 &gt;Devin&lt;/a&gt; widen automation surface area, NEKOWORK bets the opposite direction — on evidence, Human Gate, and explicit apply. That bet has a high chance of becoming standard in enterprise, finance, and healthcare domains, because the audit requirements of &lt;a class="link" href="https://www.aicpa-cima.com/topic/audit-assurance/audit-and-assurance-greater-than-soc-2" target="_blank" rel="noopener"
 &gt;SOC 2&lt;/a&gt;, &lt;a class="link" href="https://www.iso.org/standard/27001" target="_blank" rel="noopener"
 &gt;ISO 27001&lt;/a&gt;, and the &lt;a class="link" href="https://artificialintelligenceact.eu" target="_blank" rel="noopener"
 &gt;EU AI Act&lt;/a&gt; will eventually flow down into AI agent workflows. The fact that a single developer staked out this position first is interesting in itself. The quickest experiment: run &lt;code&gt;npx -y @ps-neko/nekowork@alpha check&lt;/code&gt; against one of your own repos and see what surfaces.&lt;/p&gt;
&lt;h2 id="references"&gt;References
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Repository&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/Ps-Neko/NEKOWORK" target="_blank" rel="noopener"
 &gt;Ps-Neko/NEKOWORK on GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/Ps-Neko/NEKOWORK/blob/main/README.md" target="_blank" rel="noopener"
 &gt;NEKOWORK English README&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://www.npmjs.com/package/@ps-neko/nekowork" target="_blank" rel="noopener"
 &gt;@ps-neko/nekowork on npm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/Ps-Neko/NEKOWORK/blob/main/agent.yaml" target="_blank" rel="noopener"
 &gt;agent.yaml manifest&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Core docs&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/Ps-Neko/NEKOWORK/blob/main/docs/ARCHITECTURE.md" target="_blank" rel="noopener"
 &gt;ARCHITECTURE.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/Ps-Neko/NEKOWORK/blob/main/docs/WHY-NEKOWORK.md" target="_blank" rel="noopener"
 &gt;WHY-NEKOWORK.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/Ps-Neko/NEKOWORK/blob/main/docs/SAFETY-GUARANTEES.md" target="_blank" rel="noopener"
 &gt;SAFETY-GUARANTEES.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/Ps-Neko/NEKOWORK/blob/main/docs/TRUST-MODEL.md" target="_blank" rel="noopener"
 &gt;TRUST-MODEL.md&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/Ps-Neko/NEKOWORK/blob/main/docs/WHY-NOT-AUTOPILOT.md" target="_blank" rel="noopener"
 &gt;WHY-NOT-AUTOPILOT.md&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Comparable AI coding tools&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://aider.chat" target="_blank" rel="noopener"
 &gt;Aider&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/cline/cline" target="_blank" rel="noopener"
 &gt;Cline&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://cursor.com" target="_blank" rel="noopener"
 &gt;Cursor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://devin.ai" target="_blank" rel="noopener"
 &gt;Devin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://www.continue.dev" target="_blank" rel="noopener"
 &gt;continue.dev&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/block/goose" target="_blank" rel="noopener"
 &gt;Block Goose&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Related ecosystem&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://www.anthropic.com/claude-code" target="_blank" rel="noopener"
 &gt;Anthropic Claude Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/openai/codex" target="_blank" rel="noopener"
 &gt;OpenAI Codex CLI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/google-gemini/gemini-cli" target="_blank" rel="noopener"
 &gt;Google Gemini CLI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://opencode.ai" target="_blank" rel="noopener"
 &gt;OpenCode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://modelcontextprotocol.io" target="_blank" rel="noopener"
 &gt;Model Context Protocol&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>