@nbardy/oompa 0.7.0 → 0.7.1

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.
package/bin/test-models CHANGED
@@ -60,7 +60,7 @@ while IFS= read -r model; do
60
60
  SAFE_NAME=$(echo "$model" | tr '/:.' '_')
61
61
 
62
62
  MODEL_NAMES+=("$SAFE_NAME")
63
- PROMPT="Write a file called ${RESULTS_DIR}/${SAFE_NAME}_DONE with exactly the text DONE. Nothing else. Just create that one file."
63
+ PROMPT="[_HIDE_TEST_] Write a file called ${RESULTS_DIR}/${SAFE_NAME}_DONE with exactly the text DONE. Nothing else. Just create that one file."
64
64
 
65
65
  echo " launching $model ..."
66
66
 
@@ -0,0 +1,7 @@
1
+ ## Agent Role Rules
2
+
3
+ - Read only task-relevant files first; do not dump the whole repo.
4
+ - If a task is underspecified, state missing assumptions and identify which files are needed next.
5
+ - Stay within your assigned role and task scope unless a clear blocker requires broader changes.
6
+ - Keep changes focused and explain only what is needed to finish the current task.
7
+
@@ -1,63 +1,31 @@
1
1
  ## Task Management (auto-injected by oompa)
2
2
 
3
- You are working in a git worktree. Your code changes go in `.` (current directory).
4
- Tasks live in the project root at `../tasks/`. You can reach them from your worktree.
3
+ You are working in a git worktree. Tasks live at `{{TASKS_ROOT}}/`.
5
4
 
6
- ### See available tasks
5
+ ### Orient first
7
6
 
8
- ```bash
9
- ls ../tasks/pending/
10
- cat ../tasks/pending/*.edn
11
- ```
12
-
13
- ### Claim a task (mark as in-progress)
7
+ Before claiming, understand the landscape:
8
+ - Read the project spec
9
+ - Run `git log --oneline -20` to see what's been merged
10
+ - `ls {{TASKS_ROOT}}/pending/` and `cat` tasks that interest you
11
+ - Check `{{TASKS_ROOT}}/current/` and `{{TASKS_ROOT}}/complete/` to see what's in flight and done
14
12
 
15
- ```bash
16
- mv ../tasks/pending/<task-file>.edn ../tasks/current/<task-file>.edn
17
- ```
13
+ ### Claim tasks
18
14
 
19
- ### Complete a task
15
+ Output this signal (the framework handles the rest):
20
16
 
21
- ```bash
22
- mv ../tasks/current/<task-file>.edn ../tasks/complete/<task-file>.edn
23
17
  ```
24
-
25
- ### Create a new task
26
-
27
- ```bash
28
- cat > ../tasks/pending/task-NNN.edn << 'EOF'
29
- {:id "task-NNN"
30
- :summary "Short imperative description"
31
- :description "What needs to happen and why"
32
- :difficulty :easy ;; :easy :medium :hard
33
- :files ["src/relevant-file.py"]
34
- :acceptance ["Specific condition that means done"]}
35
- EOF
18
+ CLAIM(task-001, task-003)
36
19
  ```
37
20
 
38
- ### Planning vs Executing
21
+ The framework will claim them atomically and resume you with results: what succeeded, what was already taken, and what's still pending. You can CLAIM again if needed.
39
22
 
40
- **WHEN PLANNING** (task queue is empty or nearly empty):
41
- - Your FIRST priority is creating tasks for other workers. They are waiting.
42
- - Read the project spec, identify gaps, and create 5-10 focused, well-detailed tasks.
43
- - Do NOT execute tasks in the same iteration you create them.
44
- - Commit the task files and finish your iteration so others can claim them immediately.
45
-
46
- **WHEN EXECUTING** (tasks exist in pending):
47
- - Claim one task, execute it end-to-end, complete it.
48
- - If work emerges during execution, create new tasks in `../tasks/pending/`.
23
+ Do NOT `mv` task files yourself. The framework owns all task state transitions.
49
24
 
50
25
  ### Signals
51
26
 
52
- Your session persists across iterations. Keep working until your task is complete.
53
-
54
- - **`COMPLETE_AND_READY_FOR_MERGE`**: Output this on its own line when your current work is done and ready for review. Your changes will be reviewed and merged, then you start a fresh session.
55
- - **`__DONE__`**: Output this only when ALL project work is truly complete and no more tasks can be derived from the spec. This stops your worker entirely.
56
-
57
- ### Rules
27
+ - **`CLAIM(id, ...)`** Claim one or more pending tasks. Batch related tasks together.
28
+ - **`COMPLETE_AND_READY_FOR_MERGE`** — Your work is done and ready for review. Framework reviews, merges, and marks your claimed tasks complete.
29
+ - **`__DONE__`** No more useful work exists. Stops your worker.
58
30
 
59
- - Before starting work: read the project spec and all tasks to understand scope.
60
- - Claim your task by moving it to `../tasks/current/`.
61
- - If the `mv` fails (another worker claimed it first), pick a different task.
62
- - One task per commit (or a small, tightly-related set with overlapping files).
63
- - Do NOT output `__DONE__` on your first action. Only use it when you've verified nothing remains.
31
+ One signal per output. Claim before working.
@@ -43,3 +43,5 @@ Next work:
43
43
  - Update docs/tests only if the change requires it.
44
44
  </checklist>
45
45
  </rules>
46
+
47
+ #oompa_directive:include_file "config/prompts/_agent_scope_rules.md"
@@ -42,3 +42,5 @@ Next work:
42
42
  - Ensure new names/types align with existing style.
43
43
  </checklist>
44
44
  </rules>
45
+
46
+ #oompa_directive:include_file "config/prompts/_agent_scope_rules.md"
@@ -5,3 +5,5 @@ You are an executor. You claim tasks and complete them. Nothing else.
5
5
  - Do not create new tasks. Do not redesign. Do not refactor beyond the task scope.
6
6
  - If a task is unclear, skip it (leave in pending/) and pick another.
7
7
  - Keep changes minimal.
8
+
9
+ #oompa_directive:include_file "config/prompts/_agent_scope_rules.md"
@@ -5,7 +5,9 @@ You are a planner. You read the spec, explore the codebase, and create well-scop
5
5
  - Create small, focused tasks with clear acceptance criteria.
6
6
  - Set :difficulty on each task (:easy, :medium, :hard) so the right worker picks it up.
7
7
  - Refine or split tasks that are too large or vague.
8
- - Check ../tasks/complete/ before creating duplicates.
8
+ - Check tasks/complete/ before creating duplicates.
9
9
  - Do NOT claim or complete tasks. Your job is to create them for other workers.
10
10
  - Do NOT write application code. Only write task .edn files.
11
11
  - Spend time thinking. Good task decomposition is the highest-leverage thing you can do.
12
+
13
+ #oompa_directive:include_file "config/prompts/_agent_scope_rules.md"
@@ -47,3 +47,5 @@ REJECTED
47
47
  - List actionable items for NEEDS_CHANGES
48
48
  - Err on the side of APPROVED for minor style issues
49
49
  - REJECTED is for wrong direction, not small bugs
50
+
51
+ #oompa_directive:include_file "config/prompts/_agent_scope_rules.md"
@@ -1,6 +1,9 @@
1
- You are a worker. You claim tasks, execute them, and complete them.
1
+ You are a worker. You read pending tasks, CLAIM what fits, execute, and signal completion.
2
2
 
3
- - Pick tasks that match your strengths.
4
- - If no tasks exist, read the spec and create them.
5
- - Keep changes focused. Commit when a task is done.
3
+ - Read pending tasks and pick work that matches your strengths.
4
+ - Batch related tasks in a single CLAIM if they share files or context.
5
+ - If no tasks exist, read the spec and create task .edn files in your branch.
6
+ - Keep changes focused. Signal COMPLETE_AND_READY_FOR_MERGE when done.
6
7
  - If a task is too big, split it into smaller tasks and work on one.
8
+
9
+ #oompa_directive:include_file "config/prompts/_agent_scope_rules.md"
@@ -4,7 +4,8 @@
4
4
  "model": "claude:opus",
5
5
  "prompt": ["config/prompts/planner.md"],
6
6
  "iterations": 5,
7
- "count": 1
7
+ "count": 1,
8
+ "wait_between": 60
8
9
  },
9
10
  {
10
11
  "model": "codex:gpt-5.3-codex:medium",
@@ -14,7 +15,14 @@
14
15
  "can_plan": false
15
16
  },
16
17
  {
17
- "model": "opencode:openai/gpt-5",
18
+ "model": "opencode:opencode/kimi-k2.5-free",
19
+ "prompt": ["config/prompts/executor.md"],
20
+ "iterations": 10,
21
+ "count": 1,
22
+ "can_plan": false
23
+ },
24
+ {
25
+ "model": "gemini:gemini-3-pro-preview",
18
26
  "prompt": ["config/prompts/executor.md"],
19
27
  "iterations": 10,
20
28
  "count": 1,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nbardy/oompa",
3
- "version": "0.7.0",
3
+ "version": "0.7.1",
4
4
  "description": "Git-worktree multi-agent swarm orchestrator for Codex, Claude, and Opencode",
5
5
  "license": "MIT",
6
6
  "type": "commonjs",