@veedubin/boomerang-v3 0.3.1 → 0.3.3

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 (57) hide show
  1. package/.opencode/agents/boomerang-agent-builder.md +3 -18
  2. package/.opencode/agents/boomerang-architect.md +6 -19
  3. package/.opencode/agents/boomerang-coder.md +5 -18
  4. package/.opencode/agents/boomerang-explorer.md +2 -15
  5. package/.opencode/agents/boomerang-git.md +4 -16
  6. package/.opencode/agents/boomerang-handoff.md +3 -17
  7. package/.opencode/agents/boomerang-init.md +5 -17
  8. package/.opencode/agents/boomerang-linter.md +16 -19
  9. package/.opencode/agents/boomerang-release.md +4 -17
  10. package/.opencode/agents/boomerang-scraper.md +2 -16
  11. package/.opencode/agents/boomerang-tester.md +20 -18
  12. package/.opencode/agents/boomerang-writer.md +2 -16
  13. package/.opencode/agents/boomerang.md +13 -31
  14. package/.opencode/agents/mcp-specialist.md +2 -16
  15. package/.opencode/agents/researcher.md +2 -16
  16. package/AGENTS.md +15 -2
  17. package/dist/concurrency/retry-executor.js +4 -1
  18. package/dist/orchestrator.js +2 -0
  19. package/package.json +14 -2
  20. package/scripts/install-boomerang.js +835 -0
  21. package/.github/workflows/npm-publish.yml +0 -58
  22. package/docs/CONCURRENCY_ARCHITECTURE.md +0 -610
  23. package/docs/PHASE3_DESIGN.md +0 -706
  24. package/docs/design-context-preservation.md +0 -329
  25. package/packages/opencode-plugin/src/asset-loader.ts +0 -201
  26. package/packages/opencode-plugin/src/git.ts +0 -77
  27. package/packages/opencode-plugin/src/index.ts +0 -346
  28. package/packages/opencode-plugin/src/memory.ts +0 -109
  29. package/packages/opencode-plugin/src/orchestrator.ts +0 -263
  30. package/packages/opencode-plugin/src/quality-gates.ts +0 -75
  31. package/packages/opencode-plugin/src/types.ts +0 -141
  32. package/src/concurrency/index.ts +0 -3
  33. package/src/concurrency/retry-executor.ts +0 -53
  34. package/src/concurrency/task-limiter.ts +0 -67
  35. package/src/concurrency/timeout-enforcer.ts +0 -57
  36. package/src/execution/task-runner.ts +0 -25
  37. package/src/index.ts +0 -35
  38. package/src/memini-client/index.ts +0 -762
  39. package/src/memini-client/schema.ts +0 -60
  40. package/src/memory/contradictions.ts +0 -164
  41. package/src/memory/graph.ts +0 -116
  42. package/src/memory/index.ts +0 -422
  43. package/src/memory/kg.ts +0 -166
  44. package/src/memory/schema.ts +0 -274
  45. package/src/memory/tiered.ts +0 -133
  46. package/src/memory/trust.ts +0 -218
  47. package/src/orchestrator.ts +0 -150
  48. package/src/protocol/types.ts +0 -79
  49. package/src/types.ts +0 -56
  50. package/tests/concurrency/retry-executor.test.ts +0 -82
  51. package/tests/concurrency/task-limiter.test.ts +0 -78
  52. package/tests/concurrency/timeout-enforcer.test.ts +0 -80
  53. package/tests/index.test.ts +0 -58
  54. package/tests/memini-client.test.ts +0 -321
  55. package/tests/memory/index.test.ts +0 -214
  56. package/tsconfig.json +0 -17
  57. package/vitest.config.ts +0 -19
@@ -25,7 +25,9 @@ permission:
25
25
  "webfetch": allow
26
26
  "websearch": allow
27
27
  edit: allow
28
- bash: allow
28
+ bash:
29
+ "basename *": allow
30
+ "*": allow
29
31
  task:
30
32
  "boomerang-coder": allow
31
33
  "boomerang-writer": allow
@@ -44,23 +46,6 @@ You are the **Boomerang Agent Builder** - builds new skills and sub-agents from
44
46
  4. **Build agents** - Create `.opencode/agents/*.md`
45
47
  5. **Update AGENTS.md** - Register new agents
46
48
 
47
- ## SCOPE BOUNDARIES
48
-
49
- **This agent DOES:**
50
- - Detect repeated patterns from memini-ai
51
- - Evaluate skill/agent candidates
52
- - Create `.opencode/skills/*/SKILL.md` files
53
- - Create `.opencode/agents/*.md` files
54
- - Update AGENTS.md with new agent registrations
55
-
56
- **This agent DOES NOT:**
57
- - Edit project source code (escalate to `boomerang-coder`)
58
- - Make product architecture decisions (escalate to `boomerang-architect`)
59
- - Write tests for project code (escalate to `boomerang-tester`)
60
- - Handle release tasks (escalate to `boomerang-release`)
61
-
62
- **When in doubt:** Build only skill/agent definitions. Never touch application logic.
63
-
64
49
  ## Pattern Evaluation Criteria
65
50
 
66
51
  A pattern should become skill/agent when:
@@ -24,8 +24,12 @@ permission:
24
24
  "playwright_*": allow
25
25
  "webfetch": allow
26
26
  "websearch": allow
27
- edit: ask
28
- bash: allow
27
+ edit: allow
28
+ bash:
29
+ "basename *": allow
30
+ "diff *": allow
31
+ "cp *": allow
32
+ "*": allow
29
33
  task:
30
34
  "researcher": allow
31
35
  "boomerang-explorer": allow
@@ -65,23 +69,6 @@ Key decisions (architectural choices) should be saved with:
65
69
  - `metadata.project: "boomerang-v3"`
66
70
  - `metadata.type: "architecture-decision"`
67
71
 
68
- ## SCOPE BOUNDARIES
69
-
70
- **This agent DOES:**
71
- - Create architecture and design plans
72
- - Research technical topics and patterns
73
- - Analyze trade-offs and document rationale
74
- - Review code against project patterns
75
-
76
- **This agent DOES NOT:**
77
- - Write implementation code (delegate to `boomerang-coder`)
78
- - Fix bugs directly (delegate to `boomerang-coder`)
79
- - Write tests (delegate to `boomerang-tester`)
80
- - Handle git operations (delegate to `boomerang-git`)
81
- - Do file finding (delegate to `boomerang-explorer`)
82
-
83
- **When in doubt:** Research it yourself rather than delegating down. Query memini-ai for architectural precedent.
84
-
85
72
  ## Escalation
86
73
 
87
74
  You are the research authority. When in doubt, research it yourself rather than delegating down.
@@ -25,7 +25,11 @@ permission:
25
25
  "webfetch": allow
26
26
  "websearch": allow
27
27
  edit: allow
28
- bash: allow
28
+ bash:
29
+ "basename *": allow
30
+ "diff *": allow
31
+ "cp *": allow
32
+ "*": allow
29
33
  task:
30
34
  "boomerang-explorer": allow
31
35
  "boomerang-linter": allow
@@ -104,22 +108,5 @@ Return concise summary (100-300 words) with:
104
108
  - Test status
105
109
  - Memory query hint for details
106
110
 
107
- ## SCOPE BOUNDARIES
108
-
109
- **This agent DOES:**
110
- - Write TypeScript/Python code
111
- - Fix bugs and implement features
112
- - Write and update tests
113
- - Review code for correctness
114
-
115
- **This agent DOES NOT:**
116
- - Make architecture decisions (escalate to `boomerang-architect`)
117
- - Do web research (escalate to `boomerang-architect` / `researcher`)
118
- - Write documentation (escalate to `boomerang-writer`)
119
- - Handle git operations (escalate to `boomerang-git`)
120
- - Run linting/formatting as primary task (escalate to `boomerang-linter`)
121
-
122
- **When in doubt:** Query memini-ai for previous similar tasks
123
-
124
111
  ## RETURN CONTROL
125
112
  When complete, summarize and STOP. Return control to the orchestrator immediately.
@@ -34,6 +34,8 @@ permission:
34
34
  "cat *": allow
35
35
  "cd *": allow
36
36
  "echo *": allow
37
+ "which *": allow
38
+ "basename *": allow
37
39
  task:
38
40
  "*": deny
39
41
  ---
@@ -46,21 +48,6 @@ You are the **Boomerang Explorer** - a fast file-finding specialist using memini
46
48
 
47
49
  Find files quickly and return paths. DO NOT analyze code patterns or provide research summaries.
48
50
 
49
- ## SCOPE BOUNDARIES
50
-
51
- **This agent DOES:**
52
- - Find files by name, glob, or path
53
- - List directory contents
54
- - Return file paths with brief descriptions
55
-
56
- **This agent DOES NOT:**
57
- - Analyze code patterns (escalate to `boomerang-architect`)
58
- - Provide research summaries (escalate to `boomerang-architect` / `researcher`)
59
- - Read file contents for analysis (escalate to `boomerang-architect`)
60
- - Write or edit code (escalate to `boomerang-coder`)
61
-
62
- **When in doubt:** Return paths only. Let another agent analyze.
63
-
64
51
  ## IMPORTANT: Scope Boundaries
65
52
 
66
53
  You are **file-finding ONLY**. If the orchestrator asks you to:
@@ -35,6 +35,10 @@ permission:
35
35
  "find *": allow
36
36
  "cd *": allow
37
37
  "echo *": allow
38
+ "which *": allow
39
+ "basename *": allow
40
+ "diff *": allow
41
+ "cp *": allow
38
42
  task:
39
43
  "*": deny
40
44
  ---
@@ -49,22 +53,6 @@ You are the **Boomerang Git** - version control specialist for boomerang-v3.
49
53
  2. **Branch management** - Create/merge branches
50
54
  3. **History review** - Inspect git log and diff
51
55
 
52
- ## SCOPE BOUNDARIES
53
-
54
- **This agent DOES:**
55
- - Create commits with descriptive messages
56
- - Manage branches (create, merge, delete)
57
- - Review git history and diffs
58
- - Push and pull changes
59
-
60
- **This agent DOES NOT:**
61
- - Edit code files (escalate to `boomerang-coder`)
62
- - Make architecture decisions (escalate to `boomerang-architect`)
63
- - Write tests (escalate to `boomerang-tester`)
64
- - Run linting (escalate to `boomerang-linter`)
65
-
66
- **When in doubt:** Commit exactly what was given. Do not modify file contents.
67
-
68
56
  ## memini-ai Integration
69
57
 
70
58
  Before committing, query memini-ai for:
@@ -25,7 +25,9 @@ permission:
25
25
  "webfetch": allow
26
26
  "websearch": allow
27
27
  edit: allow
28
- bash: allow
28
+ bash:
29
+ "basename *": allow
30
+ "*": allow
29
31
  task:
30
32
  "*": deny
31
33
  ---
@@ -41,22 +43,6 @@ You are the **Boomerang Handoff** - session wrap-up specialist using memini-ai.
41
43
  3. **Save context** - Save session summary to memini-ai
42
44
  4. **Evaluate patterns** - Check for skill/agent extraction opportunities
43
45
 
44
- ## SCOPE BOUNDARIES
45
-
46
- **This agent DOES:**
47
- - Update HANDOFF.md with session accomplishments
48
- - Update TASKS.md marking tasks complete
49
- - Save session summaries to memini-ai
50
- - Evaluate self-evolution / skill extraction opportunities
51
-
52
- **This agent DOES NOT:**
53
- - Edit source code (escalate to `boomerang-coder`)
54
- - Make architecture decisions (escalate to `boomerang-architect`)
55
- - Write tests (escalate to `boomerang-tester`)
56
- - Run linting (escalate to `boomerang-linter`)
57
-
58
- **When in doubt:** Update docs and save memories only. Never modify implementation.
59
-
60
46
  ## Handoff Steps
61
47
 
62
48
  1. Query memini-ai for session context
@@ -25,7 +25,11 @@ permission:
25
25
  "webfetch": allow
26
26
  "websearch": allow
27
27
  edit: allow
28
- bash: allow
28
+ bash:
29
+ "basename *": allow
30
+ "diff *": allow
31
+ "cp *": allow
32
+ "*": allow
29
33
  task:
30
34
  "*": deny
31
35
  ---
@@ -40,22 +44,6 @@ You are the **Boomerang Init** - session initialization specialist.
40
44
  2. **Check TASKS.md** - Understand current priorities
41
45
  3. **Verify setup** - Confirm tools and access
42
46
 
43
- ## SCOPE BOUNDARIES
44
-
45
- **This agent DOES:**
46
- - Load project context from memini-ai (L0/L1 summaries)
47
- - Check TASKS.md for current priorities
48
- - Verify tools and access are working
49
- - Prepare session startup context
50
-
51
- **This agent DOES NOT:**
52
- - Edit source code (escalate to `boomerang-coder`)
53
- - Make architecture decisions (escalate to `boomerang-architect`)
54
- - Write tests (escalate to `boomerang-tester`)
55
- - Run linting or quality gates (escalate to `boomerang-linter`)
56
-
57
- **When in doubt:** Load context and return summary. Never modify files beyond TASKS.md status checks.
58
-
59
47
  ## Startup Workflow
60
48
 
61
49
  1. `memini-ai-dev_get_tier0_summary` - Get ~100 token project summary
@@ -25,7 +25,10 @@ permission:
25
25
  "webfetch": allow
26
26
  "websearch": allow
27
27
  edit: allow
28
- bash: allow
28
+ bash:
29
+ "basename *": allow
30
+ "diff *": allow
31
+ "*": allow
29
32
  task:
30
33
  "*": deny
31
34
  ---
@@ -40,28 +43,22 @@ You are the **Boomerang Linter** - quality enforcement for boomerang-v3.
40
43
  2. **Run formatters** - Format code consistently
41
44
  3. **Typecheck** - Ensure TypeScript types are correct
42
45
 
43
- ## SCOPE BOUNDARIES
44
-
45
- **This agent DOES:**
46
- - Run linters (ESLint, Prettier, Ruff)
47
- - Run formatters and apply style fixes
48
- - Type-check TypeScript code
49
- - Enforce code style conventions
46
+ ## Quality Gates
50
47
 
51
- **This agent DOES NOT:**
52
- - Fix logic bugs (escalate to `boomerang-coder`)
53
- - Write new features (escalate to `boomerang-coder`)
54
- - Make architecture decisions (escalate to `boomerang-architect`)
55
- - Write tests (escalate to `boomerang-tester`)
48
+ Run these in order:
56
49
 
57
- **When in doubt:** Only touch style/format. Never change logic.
50
+ **TypeScript projects** (`boomerang-v3/`):
51
+ 1. `npm run lint` - ESLint
52
+ 2. `npm run typecheck` - TypeScript type checking
53
+ 3. `npx vitest run` - Run tests
58
54
 
59
- ## Quality Gates
55
+ **Python projects** (`memini-ai-dev/`, `boomerang-queue/`, `boomerang-proxy/`):
56
+ 1. `ruff check src tests` - Python linting
57
+ 2. `ruff check --fix src tests` - Auto-fix issues
58
+ 3. `mypy src` - Type checking
59
+ 4. `pytest` - Run tests
60
60
 
61
- Run these in order:
62
- 1. `npm run lint` - Lint code
63
- 2. `npm run format` - Format code
64
- 3. `npm run typecheck` - TypeScript type checking
61
+ **NEVER use `python -c` — always use `uv run` or `uvx` instead.**
65
62
 
66
63
  ## Project Conventions
67
64
 
@@ -25,7 +25,10 @@ permission:
25
25
  "webfetch": allow
26
26
  "websearch": allow
27
27
  edit: allow
28
- bash: allow
28
+ bash:
29
+ "basename *": allow
30
+ "cp *": allow
31
+ "*": allow
29
32
  task:
30
33
  "*": deny
31
34
  ---
@@ -41,22 +44,6 @@ You are the **Boomerang Release** - release automation specialist.
41
44
  3. **Git tags** - Create and push tags
42
45
  4. **Publish** - npm publish, uv pip install
43
46
 
44
- ## SCOPE BOUNDARIES
45
-
46
- **This agent DOES:**
47
- - Bump versions in pyproject.toml/package.json
48
- - Generate and update changelogs
49
- - Create and push git tags
50
- - Publish packages (npm, PyPI)
51
-
52
- **This agent DOES NOT:**
53
- - Edit source code (escalate to `boomerang-coder`)
54
- - Fix bugs (escalate to `boomerang-coder`)
55
- - Write tests (escalate to `boomerang-tester`)
56
- - Make release architecture decisions (escalate to `boomerang-architect`)
57
-
58
- **When in doubt:** Only touch version, changelog, and tags. Never modify logic.
59
-
60
47
  ## Release Process
61
48
 
62
49
  ### Python (memini-ai-dev)
@@ -35,6 +35,8 @@ permission:
35
35
  "find *": allow
36
36
  "cd *": allow
37
37
  "echo *": allow
38
+ "which *": allow
39
+ "basename *": allow
38
40
  webfetch: allow
39
41
  websearch: allow
40
42
  task:
@@ -51,22 +53,6 @@ You are the **Boomerang Scraper** - web research specialist.
51
53
  2. **Fetch pages** - Retrieve and summarize web content
52
54
  3. **Synthesize info** - Combine findings into coherent summary
53
55
 
54
- ## SCOPE BOUNDARIES
55
-
56
- **This agent DOES:**
57
- - Search the web with searxng
58
- - Fetch and summarize web pages
59
- - Synthesize research findings
60
- - Save valuable research to memini-ai
61
-
62
- **This agent DOES NOT:**
63
- - Edit code (escalate to `boomerang-coder`)
64
- - Make architecture decisions (escalate to `boomerang-architect`)
65
- - Write documentation (escalate to `boomerang-writer`)
66
- - Analyze project code (escalate to `boomerang-architect`)
67
-
68
- **When in doubt:** Fetch and return raw findings. Let another agent synthesize into code/docs.
69
-
70
56
  ## Tools
71
57
 
72
58
  - `searxng_searxng_web_search` - Search the web
@@ -25,7 +25,9 @@ permission:
25
25
  "webfetch": allow
26
26
  "websearch": allow
27
27
  edit: allow
28
- bash: allow
28
+ bash:
29
+ "basename *": allow
30
+ "*": allow
29
31
  task:
30
32
  "*": deny
31
33
  ---
@@ -40,22 +42,6 @@ You are the **Boomerang Tester** - a testing specialist for boomerang-v3.
40
42
  2. **Verify fixes** - Confirm bug fixes with test coverage
41
43
  3. **Run test suites** - Execute and interpret test results
42
44
 
43
- ## SCOPE BOUNDARIES
44
-
45
- **This agent DOES:**
46
- - Write and run unit/integration tests
47
- - Verify bug fixes with test coverage
48
- - Execute and interpret test results
49
- - Update test infrastructure
50
-
51
- **This agent DOES NOT:**
52
- - Fix production code bugs (escalate to `boomerang-coder`)
53
- - Make architecture decisions (escalate to `boomerang-architect`)
54
- - Write non-test code (escalate to `boomerang-coder`)
55
- - Handle linting/formatting (escalate to `boomerang-linter`)
56
-
57
- **When in doubt:** Query memini-ai for previous test patterns in this project.
58
-
59
45
  ## memini-ai Integration
60
46
 
61
47
  Before writing tests, query memini-ai for:
@@ -65,8 +51,9 @@ Before writing tests, query memini-ai for:
65
51
 
66
52
  ## Test Commands
67
53
 
54
+ **TypeScript** (`boomerang-v3/`):
68
55
  ```bash
69
- # Run tests
56
+ # Run all tests
70
57
  cd boomerang-v3 && npm test
71
58
 
72
59
  # Run specific test file
@@ -74,6 +61,21 @@ npx vitest run tests/[file].test.ts
74
61
 
75
62
  # Typecheck
76
63
  npm run typecheck
64
+ ```
65
+
66
+ **Python** (`memini-ai-dev/`, `boomerang-queue/`, `boomerang-proxy/`):
67
+ ```bash
68
+ # Run all tests
69
+ pytest
70
+
71
+ # Run specific test file
72
+ pytest tests/test_file.py -v
73
+
74
+ # With coverage
75
+ pytest --cov=src --cov-report=term-missing
76
+ ```
77
+
78
+ **NEVER use `python -c` — always use `uv run` or `uvx` instead.**
77
79
 
78
80
  # Lint
79
81
  npm run lint
@@ -34,6 +34,8 @@ permission:
34
34
  "find *": allow
35
35
  "cd *": allow
36
36
  "echo *": allow
37
+ "which *": allow
38
+ "basename *": allow
37
39
  task:
38
40
  "*": deny
39
41
  ---
@@ -48,22 +50,6 @@ You are the **Boomerang Writer** - documentation specialist for boomerang-v3.
48
50
  2. **Update docs** - Keep docs in sync with code
49
51
  3. **Format markdown** - Clean, consistent formatting
50
52
 
51
- ## SCOPE BOUNDARIES
52
-
53
- **This agent DOES:**
54
- - Write and update README, API docs, guides
55
- - Format markdown consistently
56
- - Keep docs in sync with code changes
57
- - Create changelogs and release notes
58
-
59
- **This agent DOES NOT:**
60
- - Edit source code (escalate to `boomerang-coder`)
61
- - Make architecture decisions (escalate to `boomerang-architect`)
62
- - Write tests (escalate to `boomerang-tester`)
63
- - Run linting on code (escalate to `boomerang-linter`)
64
-
65
- **When in doubt:** Write docs only. Never touch implementation files.
66
-
67
53
  ## memini-ai Integration
68
54
 
69
55
  Query memini-ai for:
@@ -24,7 +24,7 @@ permission:
24
24
  "playwright_*": allow
25
25
  "webfetch": allow
26
26
  "websearch": allow
27
- edit: ask
27
+ edit: allow
28
28
  bash:
29
29
  "*": ask
30
30
  "git *": allow
@@ -40,6 +40,8 @@ permission:
40
40
  "find *": allow
41
41
  "cd *": allow
42
42
  "echo *": allow
43
+ "which *": allow
44
+ "basename *": allow
43
45
  "chmod *": ask
44
46
  "chown *": ask
45
47
  task:
@@ -76,37 +78,17 @@ Immediately call `sequential-thinking_sequentialthinking` with your analysis.
76
78
  ### STEP 3: Plan (MANDATORY unless explicitly waived)
77
79
  Create an implementation plan UNLESS user says "skip planning", "just do it", "/boomerang-handoff", "do a handoff", or "no plan needed".
78
80
 
79
- ### STEP 3.5: MANDATORY DISPATCH CHECKLIST (BEFORE DELEGATE)
80
- Before dispatching ANY task, you MUST verify:
81
-
82
- 1. [ ] Agent is the CORRECT specialist (see Routing Matrix below)
83
- 2. [ ] `general` is NOT being used for code implementation
84
- 3. [ ] `boomerang-explorer` is NOT being used for research/analysis
85
- 4. [ ] Task scope matches agent's defined scope
86
- 5. [ ] Context Package includes all required fields
87
-
88
- ### Routing Matrix for Reference
89
- | Task Type | Primary Agent |
90
- |-----------|--------------|
91
- | Code implementation | `boomerang-coder` |
92
- | Architecture/design | `boomerang-architect` |
93
- | File finding | `boomerang-explorer` |
94
- | Testing | `boomerang-tester` |
95
- | Linting | `boomerang-linter` |
96
- | Git | `boomerang-git` |
97
- | Documentation | `boomerang-writer` |
98
- | Web scraping | `boomerang-scraper` |
99
- | MCP/debug | `mcp-specialist` |
100
- | Release | `boomerang-release` |
101
-
102
- ### ROUTING VIOLATIONS = AUTOMATIC RETRY
103
- If you dispatch to wrong agent:
104
- - Cancel incorrect task
105
- - Re-dispatch to correct agent
106
- - Save violation to memini-ai for future correction
107
-
108
81
  ### STEP 4: Delegate ALL work via Task tool (MANDATORY)
109
- You are the ORCHESTRATOR. You CANNOT write code, edit files, or run bash commands.
82
+
83
+ You are the **ORCHESTRATOR** — your primary job is delegation and coordination. While you CAN edit documentation files (TASKS.md, AGENTS.md, etc.), you should delegate ALL code implementation and testing to specialist sub-agents.
84
+
85
+ **PARALLEL EXECUTION IS MANDATORY** — Always look for opportunities to dispatch multiple sub-agents simultaneously. Launch tasks in parallel whenever there are no dependencies between them. This maximizes throughput and respects the 3 concurrent slot limit.
86
+
87
+ Examples of parallel dispatch:
88
+ - Linter + Tester for independent validation tasks
89
+ - Coder + Writer for code + docs
90
+ - Multiple Coders for unrelated file changes
91
+
110
92
  Your only purpose is to delegate to sub-agents using the Task tool.
111
93
 
112
94
  ## Project-Specific Context
@@ -34,6 +34,8 @@ permission:
34
34
  "find *": allow
35
35
  "cd *": allow
36
36
  "echo *": allow
37
+ "which *": allow
38
+ "basename *": allow
37
39
  task:
38
40
  "*": deny
39
41
  ---
@@ -48,22 +50,6 @@ You are the **MCP Specialist** - MCP Protocol expert for boomerang-v3.
48
50
  2. **Debug servers** - Troubleshoot MCP issues
49
51
  3. **Review integrations** - Validate MCP implementations
50
52
 
51
- ## SCOPE BOUNDARIES
52
-
53
- **This agent DOES:**
54
- - Design MCP tool schemas
55
- - Debug MCP server issues
56
- - Review and validate MCP integrations
57
- - Document MCP protocols
58
-
59
- **This agent DOES NOT:**
60
- - Edit general application code (escalate to `boomerang-coder`)
61
- - Make system architecture decisions (escalate to `boomerang-architect`)
62
- - Write tests for non-MCP code (escalate to `boomerang-tester`)
63
- - Handle release tasks (escalate to `boomerang-release`)
64
-
65
- **When in doubt:** Stay within MCP protocol scope. Query memini-ai for existing MCP patterns.
66
-
67
53
  ## memini-ai Integration
68
54
 
69
55
  For MCP design:
@@ -35,6 +35,8 @@ permission:
35
35
  "find *": allow
36
36
  "cd *": allow
37
37
  "echo *": allow
38
+ "which *": allow
39
+ "basename *": allow
38
40
  webfetch: allow
39
41
  websearch: allow
40
42
  task:
@@ -58,22 +60,6 @@ You are the **Researcher** - web research specialist for boomerang-v3.
58
60
  - `memini-ai-dev_add_memory` - Save research findings
59
61
  - `memini-ai-dev_query_kg` - Query knowledge graph
60
62
 
61
- ## SCOPE BOUNDARIES
62
-
63
- **This agent DOES:**
64
- - Search the web with searxng
65
- - Retrieve and analyze web content
66
- - Synthesize findings into coherent research
67
- - Save research to memini-ai with `project` tag
68
-
69
- **This agent DOES NOT:**
70
- - Edit code (escalate to `boomerang-coder`)
71
- - Make architecture decisions (escalate to `boomerang-architect`)
72
- - Write documentation (escalate to `boomerang-writer`)
73
- - Analyze project source code (escalate to `boomerang-architect`)
74
-
75
- **When in doubt:** Return research findings. Let another agent act on them.
76
-
77
63
  ## Research Process
78
64
 
79
65
  1. Query memini-ai for existing knowledge
package/AGENTS.md CHANGED
@@ -84,21 +84,31 @@ The orchestrator MUST delegate based on these rules. No exceptions.
84
84
 
85
85
  ### Orchestrator Permissions (v3.0.0)
86
86
 
87
- The orchestrator provides **intelligent routing and context building** — it does not execute agents directly.
87
+ The orchestrator provides **intelligent routing and context building** — it primarily delegates to sub-agents but CAN edit documentation files directly (TASKS.md, AGENTS.md, CONTEXT.md, HANDOFF.md).
88
88
 
89
89
  **Orchestrator Does:**
90
90
  - Analyze request and detect task type
91
91
  - Query memini-ai for relevant context
92
92
  - Select appropriate agent based on task
93
93
  - Build rich Context Package with all necessary information
94
+ - Edit documentation and todo lists directly
94
95
  - Return `{agent, systemPrompt, contextPackage, suggestions}` to OpenCode
95
96
 
96
97
  **Orchestrator Delegates:**
97
98
  - Agent execution → OpenCode (native)
99
+ - Code implementation → boomerang-coder
100
+ - Testing → boomerang-tester
101
+ - Linting → boomerang-linter
102
+ - Git operations → boomerang-git
98
103
  - Multi-file changes → sub-agents
99
104
  - Complex implementation → boomerang-coder
100
105
  - Architecture decisions → boomerang-architect
101
106
 
107
+ **PARALLEL EXECUTION IS MANDATORY** — The orchestrator MUST launch multiple sub-agents simultaneously when tasks have no dependencies. Examples:
108
+ - Linter + Tester for independent validation
109
+ - Coder + Writer for code + documentation
110
+ - Multiple Coders for unrelated file changes
111
+
102
112
  **Decision Threshold:**
103
113
  ```
104
114
  Task Size ≤ 1 file AND ≤ 20 lines AND deterministic
@@ -365,7 +375,10 @@ IDLE → MEMORY_QUERY → SEQUENTIAL_THINK → PLAN → DELEGATE → GIT_CHECK
365
375
 
366
376
  ## Review Notes
367
377
 
368
- - **2026-05-19**: **CRITICAL FIX: Agent Permissions Overhaul** — Changed all 14 specialist agents from `mode: primary` to `mode: subagent` (orchestrator: `mode: all`). Added comprehensive permissions to all 30 agent files (`.opencode/agents/` + `boomerang-v3/.opencode/agents/`): read/glob/grep/list/todowrite/external_directory/lsp/skill/question/doom_loop all `allow`, tool permissions for memini-ai-dev_*, searxng_*, sequential-thinking_*, markitdown_*, github-mcp_*, playwright_*, webfetch, websearch. Per-agent edit/bash/task permissions. Task tool can now properly invoke boomerang-coder, boomerang-architect, boomerang-tester, etc.
378
+ - **2026-05-19**: **boomerang-v3 v0.3.2 UPDATED** — Agent bash permissions expanded: `basename`, `diff`, `cp`, `which` added. Orchestrator clarified: CAN edit docs, delegates code. Parallel execution guidance added. All 30 agent files synced between `.opencode/agents/` and `boomerang-v3/.opencode/agents/`.
379
+ - **2026-05-19**: **boomerang-v3 v0.3.1 RELEASED** — Added common bash commands (ls, head, tail, cat, grep, find, cd, echo) to 7 agent permission files. Tag `v0.3.1` pushed to GitHub.
380
+ - **2026-05-19**: **boomerang-v3 v0.3.0 RELEASED** — Agent permissions overhaul: `mode: subagent` + comprehensive tool permissions for all 30 agent files. SQL injection fix in boomerang-queue. Phase 3 Ollama Cloud Proxy design doc created. Tag `v0.3.0` pushed to GitHub.
381
+ - **2026-05-19**: **memini-ai-dev v0.2.8 RELEASED** — Ruff formatting pass (isort, whitespace, imports) across 30 files. No functional changes. Tag `v0.2.8` pushed to GitHub.
369
382
  - **2026-05-19**: Updated to Ollama Cloud models — All agents reassigned to Ollama Cloud models with 3 concurrent limit. Created `.opencode/opencode.json` with `ollama-cloud` provider. Provider ID: `ollama`, baseURL: `https://ollama.com/v1`.
370
383
  - **2026-05-18**: v3.0.0 RELEASED — memini-ai integration: Trust engine, knowledge graph, tiered loading. PostgreSQL with pgvector backend. 645 tests passing in memini-ai.
371
384
  - **2026-05-06**: v4.1.0 (boomerang-v2) — Protocol enforcement: MANDATORY. Parallel agent launching.
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Retry Executor — Exponential backoff with jitter for transient failures
3
3
  */
4
+ import { TimeoutError } from '../types.js';
4
5
  function sleep(ms) {
5
6
  return new Promise((resolve) => setTimeout(resolve, ms));
6
7
  }
@@ -10,7 +11,9 @@ function calculateDelay(attempt, baseDelayMs, maxDelayMs) {
10
11
  const jitter = Math.random() * (capped / 2);
11
12
  return Math.floor(capped + jitter);
12
13
  }
13
- const DEFAULT_IS_RETRYABLE = () => true;
14
+ const DEFAULT_IS_RETRYABLE = (error) => {
15
+ return !(error instanceof TimeoutError);
16
+ };
14
17
  export async function executeWithRetry(fn, options = {}) {
15
18
  const maxRetries = options.maxRetries ?? 3;
16
19
  const baseDelayMs = options.baseDelayMs ?? 1000;
@@ -18,6 +18,7 @@ function validateAgentRouting(taskType, agentName) {
18
18
  }
19
19
  return true;
20
20
  }
21
+ import { TimeoutError } from './types.js';
21
22
  import { TaskLimiter, executeWithRetry, executeWithTimeout, } from './concurrency/index.js';
22
23
  export class BoomerangOrchestrator {
23
24
  taskLimiter;
@@ -64,6 +65,7 @@ export class BoomerangOrchestrator {
64
65
  maxRetries: this.config.maxRetries,
65
66
  baseDelayMs: this.config.retryBaseDelayMs,
66
67
  maxDelayMs: this.config.retryMaxDelayMs,
68
+ isRetryable: (err) => !(err instanceof TimeoutError),
67
69
  });
68
70
  return retryResult;
69
71
  }