<?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/ko/tags/side-project/</link><description>Recent content in Side Project on ICE-ICE-BEAR-BLOG</description><generator>Hugo -- gohugo.io</generator><language>ko</language><lastBuildDate>Fri, 08 May 2026 00:00:00 +0900</lastBuildDate><atom:link href="https://ice-ice-bear.github.io/ko/tags/side-project/index.xml" rel="self" type="application/rss+xml"/><item><title>NEKOWORK — AI 코드 변경을 위한 검증형 오토파일럿</title><link>https://ice-ice-bear.github.io/ko/posts/2026-05-08-nekowork/</link><pubDate>Fri, 08 May 2026 00:00:00 +0900</pubDate><guid>https://ice-ice-bear.github.io/ko/posts/2026-05-08-nekowork/</guid><description>&lt;img src="https://ice-ice-bear.github.io/" alt="Featured image of post NEKOWORK — AI 코드 변경을 위한 검증형 오토파일럿" /&gt;&lt;h2 id="개요"&gt;개요
&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;는 2026-04-29에 처음 푸시되고 2026-05-08에 &lt;code&gt;0.1.0-alpha.8&lt;/code&gt;까지 올라온, 1인 개발자가 만든 &lt;a class="link" href="https://www.npmjs.com/package/@ps-neko/nekowork" target="_blank" rel="noopener"
 &gt;npm 패키지&lt;/a&gt;다. 이름은 귀엽지만 표방하는 자리는 진지하다 — &lt;strong&gt;&amp;ldquo;Verified Autopilot for AI code changes&amp;rdquo;&lt;/strong&gt;. &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;, &lt;a class="link" href="https://opencode.ai" target="_blank" rel="noopener"
 &gt;OpenCode&lt;/a&gt; 위에 얹는 한 겹의 런타임으로, AI가 짠 코드가 사람의 레포에 들어가기 전까지 &lt;strong&gt;evidence를 만들고 독립 검증을 거치고 사람의 승인을 받는&lt;/strong&gt; 흐름을 강제한다. 100개짜리 에이전트 카탈로그가 아니라 &lt;strong&gt;검증 루프 자체를 제품으로 삼는다&lt;/strong&gt;는 포지셔닝이 특이하다.&lt;/p&gt;
&lt;pre class="mermaid" style="visibility:hidden"&gt;graph TD
 Task["사용자 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; (Codex 독립 검증)"]
 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; (명시적 명령)"]
 Gate --&gt;|block| Stop["NO_SHIP"]
 Apply --&gt; Done["git apply --3way &amp;lt;br/&amp;gt; commit/push는 사람이"]&lt;/pre&gt;&lt;h2 id="1-nekowork가-가장-먼저-거부하는-것"&gt;1. NEKOWORK가 가장 먼저 거부하는 것
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://github.com/Ps-Neko/NEKOWORK#readme" target="_blank" rel="noopener"
 &gt;README&lt;/a&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;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;&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://aider.chat/docs/usage/commands.html" target="_blank" rel="noopener"
 &gt;Aider의 auto-commit 기본값&lt;/a&gt;, 또는 &lt;a class="link" href="https://devin.ai" target="_blank" rel="noopener"
 &gt;Devin&lt;/a&gt; 같은 풀 오토 에이전트가 모두 &amp;ldquo;사람이 마우스 한 번도 안 누르고 PR이 올라간다&amp;quot;를 자랑할 때, NEKOWORK는 정확히 그 자리를 거부한다. &lt;code&gt;apply&lt;/code&gt;는 &lt;strong&gt;항상 별도 명령&lt;/strong&gt;이고, &lt;code&gt;auto&lt;/code&gt; 명령은 &lt;code&gt;--apply&lt;/code&gt; 플래그를 &lt;strong&gt;명시적으로 거절한다&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;대신 NEKOWORK가 만드는 건 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;, 그리고 사람이 읽는 첫 화면인 &lt;code&gt;REPORT.md&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="2-하나의-매니페스트-다섯-개의-표면"&gt;2. 하나의 매니페스트, 다섯 개의 표면
&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;이 진실 원본이다. 거기엔 에이전트, 스킬, 훅, 프로필, 모듈, MCP 핀이 한 곳에 적혀 있고, 빌더 스크립트가 그것을 다섯 개의 하네스 디렉터리로 투영한다.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;타겟&lt;/th&gt;
 &lt;th&gt;출력 디렉터리&lt;/th&gt;
 &lt;th&gt;빌더&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;이 패턴은 &lt;a class="link" href="https://github.com/Ps-Neko/NEKOWORK/blob/main/agent.yaml#L1" target="_blank" rel="noopener"
 &gt;gitagent 스펙&lt;/a&gt; (&lt;code&gt;spec_version: gitagent/0.1.0&lt;/code&gt;)을 따른다. 같은 발상은 &lt;a class="link" href="https://hub.continue.dev" target="_blank" rel="noopener"
 &gt;continue.dev의 hub&lt;/a&gt;, &lt;a class="link" href="https://docs.anthropic.com/en/docs/build-with-claude/skills" target="_blank" rel="noopener"
 &gt;Anthropic의 Skill&lt;/a&gt;에서도 보이지만, NEKOWORK는 한 단계 더 나아가서 **&amp;ldquo;카탈로그는 빌드 산출물&amp;rdquo;**이라는 입장을 분명히 한다. 하네스가 사라져도 매니페스트는 살아남는다.&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;에 한 줄로 정리돼 있다 — &amp;ldquo;Claude Code 가 사라져도 Codex · Cursor · Gemini · OpenCode · 사내 LLM 위에서 동일한 카탈로그가 동작해야 한다.&amp;rdquo;&lt;/p&gt;
&lt;h2 id="3-핵심-invariant--executor-한-명-verifier-한-명"&gt;3. 핵심 invariant — executor 한 명, 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;에 못박혀 있다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;다중 워커 단계는 &lt;strong&gt;기본 read-only&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;한 work 사이클에 &lt;strong&gt;한 명의 executor&lt;/strong&gt;만 프로젝트 파일을 수정&lt;/li&gt;
&lt;li&gt;Codex 리뷰가 &lt;strong&gt;기본 독립 검증 경로&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;민감한 변경은 &lt;a class="link" href="https://github.com/Ps-Neko/NEKOWORK/blob/main/agents" target="_blank" rel="noopener"
 &gt;Codex challenge&lt;/a&gt; 또는 Human Gate 필수&lt;/li&gt;
&lt;li&gt;프로필은 기능을 추가할 수 있지만 안전 게이트는 못 약화시킨다&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;team&lt;/code&gt; 명령으로 여러 워커가 동시에 생각해도 산출물은 &lt;strong&gt;read-only handoff&lt;/strong&gt;다. 실제 수정은 &lt;code&gt;work&lt;/code&gt; 단계에서 단 하나의 executor가 한다. 이게 NEKOWORK가 &amp;ldquo;100개 에이전트 팩&amp;quot;이 되지 않는 이유다 — 카탈로그 크기가 아니라 &lt;strong&gt;mutation 단일화&lt;/strong&gt;가 제품의 약속이다.&lt;/p&gt;
&lt;p&gt;이 발상은 &lt;a class="link" href="https://git-scm.com/docs/index-format" target="_blank" rel="noopener"
 &gt;git의 single-writer index&lt;/a&gt;, &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&lt;/a&gt; 같은 시스템 디자인 패턴을 AI 에이전트 레이어로 가져온 것이다. 여러 에이전트가 같은 파일을 동시에 만지는 &lt;a class="link" href="https://github.com/microsoft/autogen" target="_blank" rel="noopener"
 &gt;멀티 에이전트 시나리오&lt;/a&gt;에서 충돌과 race condition을 보면 이 결정이 이해가 간다.&lt;/p&gt;
&lt;h2 id="4-cli-surface--의도적으로-작다"&gt;4. CLI surface — 의도적으로 작다
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;nekowork --help&lt;/code&gt;에서 보이는 &lt;a class="link" href="https://github.com/Ps-Neko/NEKOWORK/blob/main/docs/ARCHITECTURE.md#public-flow" target="_blank" rel="noopener"
 &gt;공개 명령&lt;/a&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 — 로컬 readiness 검사
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ask — provider 없이 목표/범위/위험 명확화
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;plan — planning handoff
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;team — 여러 워커의 read-only handoff
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;work — single executor 구현 + isolated diff
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;verify — Codex 전용 검증
&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 — REPORT.md 생성 (프로젝트 mutation 없음)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apply — 검증된 SHIP_READY diff를 명시적으로 적용
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;run — work -&amp;gt; verify -&amp;gt; ship 묶음
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;build — 한 명령 빌더 wrapper (fast/safe/team/tdd/release)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;auto — apply 경계 전까지 bounded autonomy
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a class="link" href="https://aider.chat" target="_blank" rel="noopener"
 &gt;Aider&lt;/a&gt;나 &lt;a class="link" href="https://www.anthropic.com/claude-code" target="_blank" rel="noopener"
 &gt;Claude Code&lt;/a&gt;의 명령 표면과 비교하면 흥미롭다. Aider는 인터랙티브 채팅에 가깝고, Claude Code는 슬래시 명령 + 스킬 조합인데, NEKOWORK는 &lt;strong&gt;파이프라인의 각 단계가 명시적인 CLI 명령&lt;/strong&gt;이다. &lt;code&gt;work&lt;/code&gt;는 &lt;code&gt;verify&lt;/code&gt;를 안 돌리고, &lt;code&gt;verify&lt;/code&gt;는 &lt;code&gt;ship&lt;/code&gt;을 안 돌리고, &lt;code&gt;ship&lt;/code&gt;은 절대 &lt;code&gt;apply&lt;/code&gt;를 안 한다. &lt;strong&gt;각 단계가 자기 일만 한다&lt;/strong&gt;는 Unix 철학을 AI 에이전트 워크플로에 적용한 셈이다.&lt;/p&gt;
&lt;h2 id="5-risk-classifier와-mode-safety"&gt;5. Risk classifier와 mode safety
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://github.com/Ps-Neko/NEKOWORK" target="_blank" rel="noopener"
 &gt;manifests/build-modes.json&lt;/a&gt;에 &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; 다섯 모드의 안전 순서가 적혀 있고, &lt;code&gt;build&lt;/code&gt; 명령은 task를 분류해서 적절한 모드를 자동으로 고른다. 그리고 &lt;strong&gt;명시적 downgrade를 거부&lt;/strong&gt;한다 — README에 박힌 예시:&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;&lt;code&gt;--force-mode&lt;/code&gt;로 우회할 수는 있지만, 그건 &amp;ldquo;내가 이 downgrade를 의도적으로 받아들인다&amp;quot;는 명시 선언이고 evidence에 기록된다. &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;, &lt;a class="link" href="https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/" target="_blank" rel="noopener"
 &gt;Kubernetes admission controller&lt;/a&gt;와 같은 발상 — 기본은 안전, 우회는 명시적, 우회는 감사 가능.&lt;/p&gt;
&lt;h2 id="6-provider-auth--장기-api-key는-기본-차단"&gt;6. Provider auth — 장기 API key는 기본 차단
&lt;/h2&gt;&lt;p&gt;흥미로운 디테일. NEKOWORK는 &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;를 기본으로 둔다. &lt;code&gt;claude auth status&lt;/code&gt;, &lt;code&gt;codex login&lt;/code&gt;, &lt;code&gt;gemini&lt;/code&gt; 같은 로컬 CLI 세션을 사용하고, &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; 같은 &lt;strong&gt;장기 환경변수는 provider 호출 전에 차단&lt;/strong&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;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;명시 opt-in이 필요하다 — &lt;code&gt;HARNESS_AUTH_ALLOW_ENV_OVERRIDE=1&lt;/code&gt;. 이건 &lt;a class="link" href="https://docs.anthropic.com/en/api/getting-started#authentication" target="_blank" rel="noopener"
 &gt;Anthropic의 권장 보안 패턴&lt;/a&gt;, &lt;a class="link" href="https://www.gitguardian.com/state-of-secrets-sprawl-report-2024" target="_blank" rel="noopener"
 &gt;GitGuardian의 secret hygiene 보고서&lt;/a&gt;와 같은 흐름이다. 솔로 개발자가 처음부터 이걸 기본값으로 깔아둔 건 드물다.&lt;/p&gt;
&lt;h2 id="7-1인-개발자의-깊이--평가"&gt;7. 1인 개발자의 깊이 — 평가
&lt;/h2&gt;&lt;p&gt;NEKOWORK는 별 0개, fork 0개의 알파다. 그런데 레포 구조를 보면 1인 사이드 프로젝트치고는 &lt;strong&gt;깊이가 비정상적이다&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; — alpha 단계인데 풀 CI&lt;/li&gt;
&lt;li&gt;&lt;code&gt;docs/&lt;/code&gt; 35+ 파일 — ARCHITECTURE / SAFETY-GUARANTEES / TRUST-MODEL / WHY-NOT-AUTOPILOT까지&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; — OSS 위생 완비&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.mcp.json&lt;/code&gt;, &lt;code&gt;bridge/mcp-server.js&lt;/code&gt; — &lt;a class="link" href="https://modelcontextprotocol.io" target="_blank" rel="noopener"
 &gt;MCP gateway&lt;/a&gt; 내장&lt;/li&gt;
&lt;li&gt;&lt;code&gt;8 case-study flows / 5 starter packs&lt;/code&gt; — 실제 외부 run evidence 수집 중&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;비교군을 보면 위치가 더 또렷해진다.&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; — 백만 다운로드, 인터랙티브 에이전트 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 페어 프로그래밍&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; — IDE 확장 + hub 카탈로그&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;이 모든 도구가 &amp;ldquo;AI가 얼마나 빨리/잘 짜는가&amp;quot;를 경쟁하는데, NEKOWORK만 **&amp;ldquo;AI가 짠 걸 어떻게 검증하고 멈추는가&amp;rdquo;**를 경쟁한다. 시장 포지셔닝으로는 &lt;a class="link" href="https://www.chef.io/products/chef-inspec" target="_blank" rel="noopener"
 &gt;Chef InSpec&lt;/a&gt;이나 &lt;a class="link" href="https://www.openpolicyagent.org" target="_blank" rel="noopener"
 &gt;Open Policy Agent&lt;/a&gt;에 가깝다 — compliance 레이어로서의 AI 에이전트 런타임.&lt;/p&gt;
&lt;h2 id="8-솔로-개발자-사이드-프로젝트의-좋은-형태"&gt;8. 솔로 개발자 사이드 프로젝트의 좋은 형태
&lt;/h2&gt;&lt;p&gt;NEKOWORK는 별이 0개고 외부 검증이 거의 없는 알파 단계 도구다. 솔직하게 말하면, 이 도구가 6개월 안에 사라질 가능성도 충분히 있다. 그런데도 이 레포가 흥미로운 이유는 &lt;strong&gt;1인 개발자가 스스로 정한 invariant를 코드로 강제한 방식&lt;/strong&gt; 때문이다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;카탈로그를 키우는 유혹을 거부&lt;/strong&gt; — &amp;ldquo;100개 에이전트 팩이 아니다&amp;quot;라고 README 첫 화면에 박았다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Human Gate를 회피할 수 없게 만듦&lt;/strong&gt; — &lt;code&gt;auto&lt;/code&gt; 명령이 &lt;code&gt;--apply&lt;/code&gt;를 받지 않는 건 코드 레벨의 결정이지 문서 권고가 아니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;하나의 매니페스트가 다섯 표면을 만든다&lt;/strong&gt; — 특정 벤더 도구가 사라지는 시나리오를 처음부터 가정.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;장기 API key를 기본 차단&lt;/strong&gt; — solo dev가 첫날부터 secret hygiene를 기본값으로.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;이건 &lt;a class="link" href="https://lkml.org/lkml/2000/8/25/132" target="_blank" rel="noopener"
 &gt;Linus Torvalds의 &amp;ldquo;talk is cheap, show me the code&amp;rdquo;&lt;/a&gt;의 작은 버전이다. AI 에이전트 안전성에 대해 글을 쓰는 사람은 많지만, &lt;strong&gt;자기 워크플로의 invariant를 CLI 동작으로 박아넣은 사람&lt;/strong&gt;은 드물다.&lt;/p&gt;
&lt;h2 id="인사이트"&gt;인사이트
&lt;/h2&gt;&lt;p&gt;NEKOWORK가 시장에서 살아남을지는 모른다. &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; 패키지가 6개월 뒤에도 active일지, 아니면 1인 개발자의 또 다른 archived 레포가 될지는 시간이 답한다. 하지만 이 레포에서 가져갈 수 있는 건 명확하다 — &lt;strong&gt;AI 코딩 도구의 다음 경쟁은 &amp;ldquo;얼마나 빨리 짜는가&amp;quot;가 아니라 &amp;ldquo;어떻게 멈추고 어떻게 증명하는가&amp;quot;가 될 가능성&lt;/strong&gt;. &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;, &lt;a class="link" href="https://devin.ai" target="_blank" rel="noopener"
 &gt;Devin&lt;/a&gt;이 자동화 폭을 늘리는 동안, NEKOWORK는 정반대 방향으로 evidence/Human Gate/explicit apply에 베팅한다. 이 베팅은 엔터프라이즈/금융/의료 도메인에선 결국 표준이 될 가능성이 높다 — &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;, &lt;a class="link" href="https://artificialintelligenceact.eu" target="_blank" rel="noopener"
 &gt;EU AI Act&lt;/a&gt;의 audit 요구가 AI 에이전트 워크플로에도 그대로 내려올 것이기 때문이다. 솔로 개발자 한 명이 이 자리를 먼저 잡았다는 것 자체가 흥미롭고, 한국 개발자 입장에서 가장 빨리 시도해볼 수 있는 건 &lt;code&gt;npx -y @ps-neko/nekowork@alpha check&lt;/code&gt; 한 줄로 자기 레포에 한 번 돌려보는 것이다.&lt;/p&gt;
&lt;h2 id="참고"&gt;참고
&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 GitHub 저장소&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/Ps-Neko/NEKOWORK/blob/main/README.ko.md" target="_blank" rel="noopener"
 &gt;NEKOWORK Korean 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>