meow-swarm 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/.claude/scheduled_tasks.json +3 -0
  2. package/.claude/scheduled_tasks.lock +1 -0
  3. package/.claude/settings.local.json +45 -0
  4. package/380 +0 -0
  5. package/L2 +0 -0
  6. package/LICENSE +21 -21
  7. package/README.md +161 -111
  8. package/dist/bin/meow-eval.js +491 -58
  9. package/dist/bin/meow-mcp.js +1288 -736
  10. package/dist/bin/meow.js +4701 -2103
  11. package/eslint.config.js +25 -25
  12. package/meow.db +0 -0
  13. package/meow.db-shm +0 -0
  14. package/meow.db-wal +0 -0
  15. package/package.json +83 -78
  16. package/.context/ANTI_PATTERNS.md +0 -56
  17. package/.context/ARCHITECTURE.md +0 -29
  18. package/.context/ECOSYSTEM.md +0 -12
  19. package/.context/MISSION.md +0 -13
  20. package/.context/QA_REVIEW.md +0 -200
  21. package/.husky/pre-commit +0 -2
  22. package/.husky/pre-push +0 -2
  23. package/CHANGELOG.md +0 -25
  24. package/CONTRIBUTING.md +0 -55
  25. package/PUBLISH.md +0 -268
  26. package/REPORTS/QUANTUM_AUDIT.md +0 -40
  27. package/REPORTS/SELF_REVIEW.md +0 -50
  28. package/SECURITY.md +0 -16
  29. package/bun.lock +0 -613
  30. package/bunfig.toml +0 -11
  31. package/docs/ARCHITECTURAL_GAP_ANALYSIS.md +0 -400
  32. package/docs/GAP_ANALYSIS.md +0 -257
  33. package/docs/TOKEN_OPTIMIZATION_STRATEGY.md +0 -93
  34. package/docs/TUI_SPEC.md +0 -211
  35. package/docs/assets/image.png +0 -0
  36. package/docs/assets/repo_map.md +0 -181
  37. package/docs/gap-analysis-vs-kitchen-factory/QUALITY_FIRST_ARCHITECTURE.md +0 -368
  38. package/docs/processed/END_TO_END_TESTING.md +0 -76
  39. package/docs/processed/ENVIRONMENT_AWARENESS.md +0 -45
  40. package/docs/processed/LAYERED_AGENCY_UPGRADE.md +0 -70
  41. package/docs/processed/PRODUCTION_READINESS.md +0 -165
  42. package/evals/missions.jsonl +0 -5
  43. package/memory/MEMORY.md +0 -5
  44. package/memory/karpathy-guidelines.md +0 -59
  45. package/meow-agent-0.1.0.tgz +0 -0
  46. package/skills/computer-use/SKILL.md +0 -222
  47. package/skills/computer-use/scripts/computer_tool.py +0 -746
  48. package/skills/find-skills/SKILL.md +0 -170
  49. package/skills/game-vision/SKILL.md +0 -109
  50. package/skills/game-vision/game_vision.py +0 -246
  51. package/skills/karpathy_guidelines/SKILL.md +0 -70
  52. package/skills/mano-p/SKILL.md +0 -118
  53. package/skills/meow/SKILL.md +0 -388
  54. package/skills/meow/meow.py +0 -539
  55. package/skills/play-game/SKILL.md +0 -290
  56. package/skills/play-game/game_agent.py +0 -469
  57. package/skills/setup/SKILL.md +0 -47
  58. package/skills/token-max/SKILL.md +0 -299
  59. package/skills/token-max/token_max.py +0 -685
@@ -0,0 +1,3 @@
1
+ {
2
+ "tasks": []
3
+ }
@@ -0,0 +1 @@
1
+ {"sessionId":"8ee49b11-9dbb-4c1b-8ed5-82d6e9023eaa","pid":492208,"procStart":"639150108404627040","acquiredAt":1779526818153}
@@ -0,0 +1,45 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(gh pr *)",
5
+ "Bash(npx vitest *)",
6
+ "Bash(git add *)",
7
+ "Bash(git commit -m ' *)",
8
+ "Bash(git push *)",
9
+ "Bash(git checkout *)",
10
+ "Bash(git rm *)",
11
+ "Bash(npm run *)",
12
+ "Bash(npm test *)",
13
+ "Bash(echo \"EXIT:$?\")",
14
+ "Read(//c/Users/stanc/github/meow/src/**)",
15
+ "Read(//c/Users/stanc/github/meow/src/ai_loop/**)",
16
+ "Bash(git -C ~/github/meow status --short)",
17
+ "Bash(git -C \"C:\\\\Users\\\\stanc\\\\github\\\\meow\" status)",
18
+ "Bash(git -C \"C:\\\\Users\\\\stanc\\\\github\\\\meow\" log --oneline -3)",
19
+ "Bash(git -C \"C:\\\\Users\\\\stanc\\\\github\\\\meow\" checkout -b docs/refactor-structure)",
20
+ "Bash(git -C \"C:\\\\Users\\\\stanc\\\\github\\\\meow\" log --oneline -5)",
21
+ "Bash(git -C \"C:\\\\Users\\\\stanc\\\\github\\\\meow\" push --no-verify -u origin docs/refactor-structure)",
22
+ "Bash(git -C \"C:\\\\Users\\\\stanc\\\\github\\\\meow\" diff README.md)",
23
+ "Bash(git commit --no-verify -m 'docs: simplify README to plain description *)",
24
+ "Bash(meow -p \"Create a repository map document and save it to docs/repo-map.md. The map should cover the top-level directories and key files, their purpose, and how they relate to each other. Format it as a clear reference guide for someone reading the codebase.\")",
25
+ "Bash(node dist/bin/meow.js -p \"Fix BUG-01: vec_memory integer primary key crash. Symptom: 'SqliteError: Only integers are allowed for primary key values on vec_memory' fires 7-10x per session. Root cause: the vec_memory table \\(sqlite-vec\\) requires integer PKs but inserts are passing a non-integer \\(UUID/string\\). Fix: use INTEGER PRIMARY KEY AUTOINCREMENT for the vec_memory table, store the UUID as a separate column. File: src/agent/memory.ts or wherever vec_memory rows are inserted. After fixing: run npm test to confirm no regressions, then mark BUG-01 closed in docs/STATUS.md and check its checkbox in docs/ROADMAP.md.\")",
26
+ "Bash(node dist/bin/meow.js --tui)",
27
+ "Read(//tmp/**)",
28
+ "Bash(xargs wc -l)",
29
+ "Bash(ls -lah /c/Users/stanc/AppData/Local/Temp/claude/*/tasks/bze8v5iiq.output 2>/dev/null | head -5 && echo \"---\" && wc -l /c/Users/stanc/AppData/Local/Temp/claude/*/tasks/bze8v5iiq.output 2>/dev/null)",
30
+ "Bash(git commit -m 'fix: resolve BUG-01 vec_memory integer PK crash by using correct sqlite-vec API vec0_insert\\(\\) *)",
31
+ "Bash(git commit -m 'fix: resolve BUG-02 fixMeow\\(\\) timeout on Windows by using exec\\(\\) instead of spawn\\(\\) *)",
32
+ "Bash(git commit -m 'docs: remove BUG-02 warning from CLAUDE.md \\(fixed in e0cfe07\\) *)",
33
+ "Bash(git commit -m 'chore: clean up .env — remove duplicate and non-standard variables *)",
34
+ "Bash(python3 -c ' *)",
35
+ "Bash(git clone *)",
36
+ "Bash(curl -s -o /dev/null -w \"%{http_code}\" https://biosphere-gateway-24qvfiqipa-uc.a.run.app/anthropic/v1/messages)",
37
+ "Bash(curl -s https://biosphere-gateway-24qvfiqipa-uc.a.run.app/)",
38
+ "Bash(curl -s -X POST https://biosphere-gateway-24qvfiqipa-uc.a.run.app/anthropic/v1/messages -H 'Authorization: Bearer sk-ant-api03-y7XcGi4-O5TQQIxzDR9OEWSQaIf9Lx5NPlSBsTPEj4BdjSljxUJCfSsdHQi4UvYy7KOizFUKv3GLmkyZ9-wVhFj4LZOsfP4' -H 'Content-Type: application/json' -H 'anthropic-version: 2023-01-01' -d '{\"model\":\"MiniMax-M2.7\",\"max_tokens\":10,\"messages\":[{\"role\":\"user\",\"content\":\"hi\"}]}')",
39
+ "Bash(curl -s -X POST https://biosphere-gateway-24qvfiqipa-uc.a.run.app/anthropic/v1/messages -H 'Authorization: sk-ant-api03-y7XcGi4-O5TQQIxzDR9OEWSQaIf9Lx5NPlSBsTPEj4BdjSljxUJCfSsdHQi4UvYy7KOizFUKv3GLmkyZ9-wVhFj4LZOsfP4' -H 'Content-Type: application/json' -H 'anthropic-version: 2023-01-01' -d '{\"model\":\"MiniMax-M2.7\",\"max_tokens\":10,\"messages\":[{\"role\":\"user\",\"content\":\"hi\"}]}')",
40
+ "Bash(curl -s -X POST https://biosphere-gateway-24qvfiqipa-uc.a.run.app/anthropic/v1/messages -H 'Authorization: Bearer sk-ant-api03-y7XcGi4-O5TQQIxzDR9OEWSQaIf9Lx5NPlSBsTPEj4BdjSljxUJCfSsdHQi4UvYy7KOizFUKv3GLmkyZ9-wVhFj4LZOsfP4' -H 'Content-Type: application/json' -H 'anthropic-version: 2023-01-01' -d '{\"model\":\"MiniMax-M2.7\",\"max_tokens\":5,\"messages\":[{\"role\":\"user\",\"content\":\"hi\"}]}')",
41
+ "Bash(python3 -c \"import sys,json; d=json.load\\(sys.stdin\\); print\\('OK:', d.get\\('type', d\\)\\)\")",
42
+ "Bash(curl -s -X POST https://biosphere-gateway-24qvfiqipa-uc.a.run.app/anthropic/v1/messages -H 'Authorization: Bearer sk-ant-api03-y7XcGi4-O5TQQIxzDR9OEWSQaIf9Lx5NPlSBsTPEj4BdjSljxUJCfSsdHQi4UvYy7KOizFUKv3GLmkyZ9-wVhFj4LZOsfP4' -H 'x-api-key: sk-ant-api03-y7XcGi4-O5TQQIxzDR9OEWSQaIf9Lx5NPlSBsTPEj4BdjSljxUJCfSsdHQi4UvYy7KOizFUKv3GLmkyZ9-wVhFj4LZOsfP4' -H 'Content-Type: application/json' -H 'anthropic-version: 2023-01-01' -d '{\"model\":\"MiniMax-M2.7\",\"max_tokens\":5,\"messages\":[{\"role\":\"user\",\"content\":\"hi\"}]}')"
43
+ ]
44
+ }
45
+ }
package/380 ADDED
File without changes
package/L2 ADDED
File without changes
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2024 stancsz
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2024 stancsz
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,111 +1,161 @@
1
- # meow-swarm
2
-
3
- **The problem:** You want an AI coding agent that runs autonomously — not a chat window you babysit, but a background worker that accepts a task, runs to completion, and reports back. While you sleep. While you work on something else. In CI.
4
-
5
- **The solution:** `meow -p "task"` dispatches a self-healing, quality-gated coding agent into the background. It checkpoints every step to SQLite, retries on failure, stops when it's stuck, and surfaces everything in a TUI dashboard.
6
-
7
- ```bash
8
- npm install -g meow-swarm
9
- meow -p "refactor auth into its own service"
10
- ```
11
-
12
- ---
13
-
14
- ## Install
15
-
16
- **Requires:** Node.js 18+ · `ANTHROPIC_API_KEY` env var set
17
-
18
- ```bash
19
- npm install -g meow-swarm
20
- export ANTHROPIC_API_KEY=sk-ant-... # or set in shell profile
21
-
22
- # Primary: headless (no TTY required) designed for scripts, CI, or background dispatch
23
- meow -p "fix the race condition in src/queue.ts"
24
-
25
- # Interactive TUI dashboard
26
- meow --tui
27
-
28
- # Interactive REPL
29
- meow
30
- ```
31
-
32
- Bun is not supported. `better-sqlite3` requires Node.js native addons.
33
-
34
- ---
35
-
36
- ## What it actually does
37
-
38
- ```
39
- you → meow -p "task" background checkpoint quality gate → done
40
- stuck?
41
- retry / adapt / stop + report
42
- ```
43
-
44
- 1. **Receives a task** via `meow -p` (headless, no TTY) or `meow` (interactive REPL)
45
- 2. **Dispatches to L4 specialist** (Claude Code subprocess)
46
- 3. **Mission reviewer scores output** across 7 criteria
47
- 4. **Quality gate** — if output fails, it retries with reviewer notes
48
- 5. **Convergence check** — stops if stagnating, budget exceeded, or diminishing returns
49
- 6. **Checkpoints state** to SQLite after every iteration — crash-safe
50
- 7. **TUI dashboard** shows live task progress, queue, and history
51
-
52
- ---
53
-
54
- ## Self-healing: the MEOW-3-RULE
55
-
56
- When `meow -p` fails 3 times, it doesn't just give up. It surfaces a diagnostic:
57
-
58
- ```
59
- Task arrives meow -p "task" (3 retry attempts)
60
- ↓ fails × 3
61
- claude -p "fix meow-swarm" (repairs meow-swarm's own code, NOT the task)
62
-
63
- you re-run → meow -p "task" (now succeeds)
64
- ```
65
-
66
- `claude -p` only fires when meow-swarm's own code/prompts are broken. It fixes meow-swarm, then you re-dispatch the original task. This is the operator loop you never fix tasks manually.
67
-
68
- ---
69
-
70
- ## Quality gates
71
-
72
- Every output is scored before it can be marked complete:
73
-
74
- | Gate | Checks | On fail |
75
- |------|--------|---------|
76
- | `NO_MOCKS` | No `TODO`, `FIXME`, placeholder code | Retry with note |
77
- | `TYPE_CHECK` | `tsc --noEmit` passes | Retry |
78
- | `LINT_CLEAN` | ESLint 0 errors | Retry |
79
- | `MISSION_COMPLETE` | Goal keywords present in output | Retry |
80
- | `SOP_COMPLIANCE` | Think-Plan-Verify pattern | Retry |
81
-
82
- ---
83
-
84
- ## Configuration
85
-
86
- | Variable | Default | Notes |
87
- |----------|---------|-------|
88
- | `ANTHROPIC_API_KEY` | *(required)* | API key for LLM calls |
89
- | `ANTHROPIC_BASE_URL` | *(not set)* | Override for custom LLM endpoints |
90
- | `ANTHROPIC_MODEL` | `claude-sonnet-4` | Model name |
91
- | `MEOW_DB` | `~/.meow/meow.db` | SQLite checkpoint store |
92
- | `MEOW_MODE` | `SEQUENTIAL` | `SEQUENTIAL` · `PARALLEL` · `SHIP` · `AUDIT_ONLY` |
93
-
94
- ---
95
-
96
- ## Architecture
97
-
98
- ```
99
- L1 LIAISON — Receives tasks, escalates ambiguity to human
100
- L2 ARCHITECT — Breaks tasks, sequences dependencies
101
- L3 ORCHESTRATOR — Task queue, convergence checks, dispatch
102
- L4 SPECIALISTS Claude Code subprocesses (can be swapped)
103
- ```
104
-
105
- State is checkpointed to SQLite after every operation. If the process dies, the next invocation resumes from the last checkpoint.
106
-
107
- ---
108
-
109
- ## License
110
-
111
- MIT
1
+ # meow-swarm
2
+
3
+ > One prompt. Meow plans it, builds it, verifies it, and repairs itself if anything breaks.
4
+
5
+ ```bash
6
+ meow -p "add OAuth2 login to the API with tests"
7
+ # → dispatched. check back with meow --tui
8
+ ```
9
+
10
+ Most coding agents execute your prompt once and hand you back a diff. Meow-swarm is different: it runs a full plan → build → quality-verify → self-repair loop autonomously, and doesn't mark a task done until it can show evidence the work is correct.
11
+
12
+ ---
13
+
14
+ ## What makes meow-swarm different
15
+
16
+ ### 1. Definition of Done before the first line of code
17
+
18
+ When a task arrives, meow derives explicit acceptance criteria from your request before touching anything. It knows what "done" looks like — specific, verifiable outcomes — before it starts. This is what separates a task that completes from one that finishes.
19
+
20
+ ### 2. Quality gates, not just a diff
21
+
22
+ After every execution, meow runs a structured self-review loop against a set of quality gates:
23
+
24
+ | Gate | What it checks |
25
+ |------|---------------|
26
+ | **Placeholder Detection** | No TODOs, FIXMEs, or stub bodies in produced code |
27
+ | **Lint / Type Check** | Zero errors from the project's linter and type checker |
28
+ | **Test Coverage** | Tests pass, coverage meets the project threshold |
29
+ | **Coherence** | The diff actually addresses the stated goal (LLM review pass) |
30
+ | **Human Sign-Off** | Production tasks require explicit approval before shipping |
31
+
32
+ If gates fail, meow feeds the specific issues back into the agent loop and retries — up to a configurable iteration limit. A `QualityConvergenceChecker` tracks whether quality is genuinely improving each iteration and stops early if it detects diminishing returns, so it doesn't burn tokens grinding on something unfixable.
33
+
34
+ ### 3. Evidence-based completion
35
+
36
+ Meow doesn't consider a task done because the code compiled. It runs the thing it built and captures the evidence:
37
+
38
+ - **stdout / stderr** from running the produced code or tests
39
+ - **Screenshots** for UI changes (visual diff against baseline)
40
+ - **File read-back** for generated artifacts — confirms the file has real content, not a stub
41
+
42
+ This evidence is fed to an LLM judge that scores the work against the original task description. Score below threshold → back into the loop with a specific critique. Score above threshold → task is marked complete with the evidence attached.
43
+
44
+ ### 4. MEOW-3-RULE: self-repair instead of giving up
45
+
46
+ When meow fails three consecutive attempts on a task, it doesn't ask you for help. It runs a targeted `claude -p` call — not to finish the task, but to diagnose and patch meow's own code, prompts, or tool configuration. After the patch, the task is re-queued for a fresh attempt with the fixed machinery.
47
+
48
+ ```
49
+ Task fails × 3
50
+ claude -p "diagnose why meow failed, fix meow's code"
51
+ → meow is patched
52
+ → task re-queued → succeeds
53
+ ```
54
+
55
+ The task and the mechanic are never conflated. Meow fixes itself; it doesn't sneak in a bad completion to avoid admitting failure.
56
+
57
+ ### 5. Skills-first execution
58
+
59
+ Before writing any code for common task types — code review, frontend design, testing, documentation — meow searches the community skills ecosystem:
60
+
61
+ - [`https://github.com/anthropics/skills`](https://github.com/anthropics/skills)
62
+ - [`https://github.com/vercel-labs/skills`](https://github.com/vercel-labs/skills/blob/main/skills/find-skills/SKILL.md)
63
+
64
+ A battle-tested code review skill has better prompts and output structure than anything meow would derive from scratch on every run. Skills are installed automatically if found (`npx skills add <skill> -g -y`) and invoked before falling back to raw LLM generation or a summon call.
65
+
66
+ ### 6. Background daemonfire and forget
67
+
68
+ Meow is not a chat partner. It runs in the background like a worker process:
69
+
70
+ - Dispatch a task → returns immediately, work runs async
71
+ - Checkpoints every state change to SQLite — crashes are recoverable
72
+ - `meow --continue` resumes stranded tasks on reboot
73
+ - `meow --tui` gives a live dashboard of agent status, task queue, and token costs
74
+
75
+ You can dispatch a task, close your laptop, and come back to a completed result with a full audit trail of every decision and tool call.
76
+
77
+ ### 7. Multi-layer architecture with specialist routing
78
+
79
+ ```
80
+ meow -p "task"
81
+
82
+ [L1 Liaison] Intent extraction, MissionBrief with acceptance criteria
83
+
84
+ [L2 Architect] Task decomposition, dependency resolution, specialist assignment
85
+
86
+ [L3 SwarmManager] Parallel or sequential execution across specialist agents
87
+
88
+ [Self-Review Loop] Quality gates, convergence check, evidence capture
89
+
90
+ [LLM Judge] Scores output against original task passes or feeds critique back
91
+
92
+ [L4 Auditor] Final checkpoint to SQLite, cost tracking, audit ledger
93
+ ```
94
+
95
+ Each layer uses the right model for its job. The Liaison uses a fast model for sub-500ms intent parsing. Deep execution uses your configured model (Claude Sonnet by default). The judge uses a separate call with the full context to avoid self-grading bias.
96
+
97
+ ---
98
+
99
+ ## Quick start
100
+
101
+ ```bash
102
+ # Node.js 18+ required (Bun not supported native SQLite addons require Node)
103
+ npm install -g meow-swarm
104
+
105
+ # Configure your API key
106
+ export ANTHROPIC_API_KEY="sk-ant-..."
107
+
108
+ # Dispatch a task
109
+ meow -p "refactor the auth module to use JWT and add tests"
110
+
111
+ # Watch it work
112
+ meow --tui
113
+ ```
114
+
115
+ ## Commands
116
+
117
+ | Command | Description |
118
+ |---------|-------------|
119
+ | `meow -p "task"` | Dispatch task headlessly (primary interface) |
120
+ | `meow` | Interactive REPL |
121
+ | `meow --tui` | Live terminal dashboard |
122
+ | `meow --continue` | Resume stranded tasks after a crash |
123
+ | `meow --monitor` | Run the monitoring agent (cluster analysis, patch suggestions) |
124
+
125
+ ## Configuration
126
+
127
+ Copy `.env.example` to `.env` and set:
128
+
129
+ | Variable | Default | Description |
130
+ |----------|---------|-------------|
131
+ | `ANTHROPIC_API_KEY` | required | API key |
132
+ | `ANTHROPIC_MODEL` | `claude-sonnet-4` | Model for execution |
133
+ | `MEOW_MODE` | `SHIP` | `SHIP`, `SEQUENTIAL`, `PARALLEL`, `ECOMODE`, `RALPH` |
134
+ | `MEOW_BUDGET_CENTS` | unset | Hard spend cap per session |
135
+ | `MEOW_DB` | `meow.db` | SQLite state database path |
136
+
137
+ **Execution modes:**
138
+
139
+ - `SHIP` — Full quality pipeline. Self-review loop, all gates, LLM judge. Use for production tasks.
140
+ - `SEQUENTIAL` — Gates enabled, no judge pass. Good for development iteration.
141
+ - `PARALLEL` — Maximum throughput, no quality gates. Use for bulk refactors you'll review yourself.
142
+ - `ECOMODE` — Cheap model, 1 retry, 30s timeout. Fast exploration.
143
+ - `RALPH` — Unlimited retries, relentless quality convergence. For hard problems where cost is secondary.
144
+
145
+ ---
146
+
147
+ ## MEOW-3-RULE (never violate this)
148
+
149
+ ```
150
+ Task arrives → meow -p (3 retry attempts)
151
+ ↓ fails × 3
152
+ claude -p (fixes meow's code/prompts — NOT the task)
153
+
154
+ User re-runs same task → meow → succeeds
155
+ ```
156
+
157
+ `claude -p` is a meow-swarm mechanic. It repairs broken machinery. It never completes the original task on meow's behalf.
158
+
159
+ ---
160
+
161
+ See `docs/STATUS.md` for current known issues and `docs/TODO.md` for the prioritized improvement backlog.