@polderlabs/bizar 2.3.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.
- package/LICENSE +21 -0
- package/README.md +364 -0
- package/cli/audit.mjs +144 -0
- package/cli/banner.mjs +41 -0
- package/cli/bin.mjs +186 -0
- package/cli/copy.mjs +508 -0
- package/cli/export.mjs +87 -0
- package/cli/init.mjs +147 -0
- package/cli/install.mjs +390 -0
- package/cli/plan-templates.mjs +523 -0
- package/cli/plan.mjs +2087 -0
- package/cli/prompts.mjs +163 -0
- package/cli/update.mjs +273 -0
- package/cli/utils.mjs +153 -0
- package/config/AGENTS.md +282 -0
- package/config/agents/baldr.md +148 -0
- package/config/agents/forseti.md +112 -0
- package/config/agents/frigg.md +101 -0
- package/config/agents/heimdall.md +157 -0
- package/config/agents/hermod.md +144 -0
- package/config/agents/mimir.md +115 -0
- package/config/agents/odin.md +309 -0
- package/config/agents/quick.md +78 -0
- package/config/agents/semble-search.md +44 -0
- package/config/agents/thor.md +97 -0
- package/config/agents/tyr.md +96 -0
- package/config/agents/vidarr.md +100 -0
- package/config/agents/vor.md +140 -0
- package/config/commands/audit.md +1 -0
- package/config/commands/explain.md +1 -0
- package/config/commands/init.md +1 -0
- package/config/commands/learn.md +1 -0
- package/config/commands/pr-review.md +1 -0
- package/config/commands/tailscale-serve.md +96 -0
- package/config/hooks/README.md +29 -0
- package/config/hooks/post-tool-use.md +16 -0
- package/config/hooks/pre-tool-use.md +16 -0
- package/config/opencode.json +52 -0
- package/config/opencode.json.template +52 -0
- package/config/rules/general.md +8 -0
- package/config/rules/git.md +11 -0
- package/config/rules/javascript.md +10 -0
- package/config/rules/python.md +10 -0
- package/config/rules/testing.md +10 -0
- package/config/skills/bizar/README.md +9 -0
- package/config/skills/bizar/SKILL.md +187 -0
- package/config/skills/cpp-coding-standards/README.md +28 -0
- package/config/skills/cpp-coding-standards/SKILL.md +634 -0
- package/config/skills/cpp-coding-standards/agents/openai.yaml +4 -0
- package/config/skills/cpp-coding-standards/references/concurrency.md +320 -0
- package/config/skills/cpp-coding-standards/references/error-handling.md +229 -0
- package/config/skills/cpp-coding-standards/references/memory-safety.md +216 -0
- package/config/skills/cpp-coding-standards/references/modern-idioms.md +282 -0
- package/config/skills/cpp-coding-standards/references/review-checklist.md +96 -0
- package/config/skills/cpp-testing/README.md +28 -0
- package/config/skills/cpp-testing/SKILL.md +304 -0
- package/config/skills/cpp-testing/agents/openai.yaml +4 -0
- package/config/skills/cpp-testing/references/coverage.md +370 -0
- package/config/skills/cpp-testing/references/framework-compare.md +175 -0
- package/config/skills/cpp-testing/references/host-test-for-embedded.md +499 -0
- package/config/skills/cpp-testing/references/mocking.md +364 -0
- package/config/skills/cpp-testing/references/tdd-workflow.md +308 -0
- package/config/skills/embedded-esp-idf/README.md +41 -0
- package/config/skills/embedded-esp-idf/SKILL.md +439 -0
- package/config/skills/embedded-esp-idf/agents/openai.yaml +4 -0
- package/config/skills/embedded-esp-idf/references/freertos-patterns.md +214 -0
- package/config/skills/embedded-esp-idf/references/host-tests.md +164 -0
- package/config/skills/embedded-esp-idf/references/idf-py-commands.md +157 -0
- package/config/skills/embedded-esp-idf/references/kconfig.md +159 -0
- package/config/skills/embedded-esp-idf/references/logging-discipline.md +118 -0
- package/config/skills/embedded-esp-idf/references/memory-and-iram.md +137 -0
- package/config/skills/embedded-esp-idf/references/nvs.md +121 -0
- package/config/skills/embedded-esp-idf/references/packed-structs.md +192 -0
- package/config/skills/embedded-esp-idf/scripts/idf_env.sh +47 -0
- package/config/skills/embedded-esp-idf/scripts/size_check.sh +77 -0
- package/config/skills/self-improvement/SKILL.md +64 -0
- package/package.json +47 -0
- package/templates/plan/htmx.min.js +1 -0
- package/templates/plan/library/bug-investigation.mdx +79 -0
- package/templates/plan/library/decision-record.mdx +71 -0
- package/templates/plan/library/feature-design.mdx +92 -0
- package/templates/plan/meta.json.template +8 -0
- package/templates/plan/plan.canvas.template +1711 -0
- package/templates/plan/plan.html.template +937 -0
- package/templates/plan/plan.mdx.template +46 -0
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bizar
|
|
3
|
+
description: Use when working with, configuring, troubleshooting, or understanding the Bizar Norse-pantheon multi-agent system for opencode. Covers Odin routing, agent tiers, cost-aware dispatch, parallel implementation, and common failure modes.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Bizar
|
|
7
|
+
|
|
8
|
+
Norse-pantheon multi-agent system for opencode. 13 agents across 4 cost tiers, with Odin as a pure router that always splits implementation across parallel subagents.
|
|
9
|
+
|
|
10
|
+
## Installation
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
git clone https://github.com/DrB0rk/BizarHarness.git
|
|
14
|
+
cd BizarHarness
|
|
15
|
+
chmod +x install.sh
|
|
16
|
+
./install.sh
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Architecture
|
|
20
|
+
|
|
21
|
+
Odin is the only primary agent. Every request hits him first. He NEVER does work — he decomposes into parallel streams and dispatches to subagents.
|
|
22
|
+
|
|
23
|
+
All subagents use Hindsight memory with **per-project banks**. Call `hindsight_list_banks` at session start to discover available banks, determine the project name, and use `bank_id: "<project-name>"` in all Hindsight calls. The default bank is for general/cross-project knowledge only.
|
|
24
|
+
|
|
25
|
+
## Agent Reference
|
|
26
|
+
|
|
27
|
+
| Agent | Model | Tier | Cost | When to Route |
|
|
28
|
+
|---|---|---|---|---|
|
|
29
|
+
| **Odin** ᛟ | MiniMax-M3 | Router | $0.30/M · $1.20/M out | Primary entry point. Decomposes and dispatches. |
|
|
30
|
+
| **Mimir** ᛗ | DeepSeek V4 Flash | Free | **$0** | Deep codebase research, Semble-first exploration, docs analysis |
|
|
31
|
+
| **Heimdall** ᚹ | DeepSeek V4 Flash | Free | **$0** | Simple edits, file ops, mechanical CRUD, quick answers |
|
|
32
|
+
| **Hermod** ᚱ | MiniMax-M2.7 | Mid | $0.30/M · $1.20/M out | Git ops: commit, push, PR, merge, rebase, branches, `gh` CLI |
|
|
33
|
+
| **Thor** ᚦ | MiniMax-M2.7 | Mid | $0.30/M · $1.20/M out | Moderate implementation, tests, debugging, refactoring |
|
|
34
|
+
| **Tyr** ᛏ | MiniMax-M3 | High | $0.30/M · $1.20/M out | Complex features, architecture, deep debugging, cross-cutting refactor |
|
|
35
|
+
| **Vidarr** ᛉ | GPT-5.5 | Ultra | ChatGPT sub | Last resort when Tyr fails or debugging is stuck |
|
|
36
|
+
| **Forseti** ᚨ | MiniMax-M3 | Gate | $0.30/M · $1.20/M out | Plan auditor — reviews Tyr/Vidarr plans before execution. `edit: deny`. |
|
|
37
|
+
| **Semble** | — | — | **$0** | MCP search tool, not an agent. Semble-first code search. |
|
|
38
|
+
|
|
39
|
+
## Odin Routing Rules
|
|
40
|
+
|
|
41
|
+
**Odin has `edit: deny`, `bash: deny`, `glob: deny`, `grep: deny`.** He literally cannot self-handle.
|
|
42
|
+
|
|
43
|
+
### Mandatory Parallelism
|
|
44
|
+
|
|
45
|
+
1. **Every request** is decomposed into independent work items
|
|
46
|
+
2. **Always 2+ parallel `task` calls** in a single message
|
|
47
|
+
3. **Implementation always splits across @thor + @tyr** (frontend/backend, file split, impl+tests)
|
|
48
|
+
4. If a task truly cannot be split, pair it with a parallel research or review task
|
|
49
|
+
|
|
50
|
+
### Routing Cheat Sheet
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
Research / Understanding → @mimir (free, Semble-first)
|
|
54
|
+
Quick edit / File ops → @heimdall (free)
|
|
55
|
+
Git / PR / Merge → @hermod (M2.7)
|
|
56
|
+
Moderate implementation → @thor (M2.7)
|
|
57
|
+
Complex implementation → @tyr (M3, after @forseti audit)
|
|
58
|
+
Ultimate fallback → @vidarr (GPT-5.5, after @forseti audit)
|
|
59
|
+
Plan review / Audit → @forseti (M3, review only)
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Cost Escalation
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
Free (Mimir, Heimdall) → $Mid (Thor, Hermod) → $$High (Tyr) → $$$Ultra (Vidarr)
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Never use a paid agent for work a free agent can do. Never use Tyr for what Thor can handle.
|
|
69
|
+
|
|
70
|
+
## Troubleshooting
|
|
71
|
+
|
|
72
|
+
### Odin Self-Handles Instead of Routing
|
|
73
|
+
|
|
74
|
+
**Symptoms:** Odin runs `bash`, `glob`, `grep`, `edit`, or `write` directly instead of delegating via `task`.
|
|
75
|
+
|
|
76
|
+
**Causes:**
|
|
77
|
+
- Odin has executable tool permissions (`bash`, `glob`, `grep`, `edit`, `write`)
|
|
78
|
+
- The model defaults to self-handling when tools are available
|
|
79
|
+
|
|
80
|
+
**Fix:** Remove those permissions from Odin's `~/.config/opencode/agents/odin.md`:
|
|
81
|
+
```yaml
|
|
82
|
+
permission:
|
|
83
|
+
task: allow
|
|
84
|
+
read: allow
|
|
85
|
+
list: allow
|
|
86
|
+
todowrite: allow
|
|
87
|
+
question: allow
|
|
88
|
+
webfetch: allow
|
|
89
|
+
websearch: allow
|
|
90
|
+
# NO bash, glob, grep, edit, write
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Agent Uses Wrong Model
|
|
94
|
+
|
|
95
|
+
**Symptoms:** A subagent uses DeepSeek when it should use M3, or uses GPT-5.5 for a simple edit.
|
|
96
|
+
|
|
97
|
+
**Causes:** The agent's `model:` field in its `.md` file is wrong or the provider isn't configured.
|
|
98
|
+
|
|
99
|
+
**Fix:** Check `~/.config/opencode/agents/<name>.md` for the `model:` field. Valid models:
|
|
100
|
+
- `opencode/deepseek-v4-flash-free` — free
|
|
101
|
+
- `minimax/MiniMax-M2.7` — M2.7 (capital M in model ID)
|
|
102
|
+
- `minimax/MiniMax-M3` — M3 (capital M in model ID)
|
|
103
|
+
- `openai/gpt-5.5` — GPT-5.5
|
|
104
|
+
|
|
105
|
+
### Minimax 404 Errors
|
|
106
|
+
|
|
107
|
+
**Symptoms:** 404 errors when calling minimax models.
|
|
108
|
+
|
|
109
|
+
**Cause:** A `baseURL: "https://api.minimax.io/v1"` was set in the provider config, which conflicts with the ai-sdk minimax provider's internal URL construction.
|
|
110
|
+
|
|
111
|
+
**Fix:** Remove any `baseURL` from the minimax provider section. The minimax API key in `auth.json` is sufficient. Example fix:
|
|
112
|
+
```diff
|
|
113
|
+
- "baseURL": "https://api.minimax.io/v1"
|
|
114
|
+
```
|
|
115
|
+
The provider uses the correct default URL internally.
|
|
116
|
+
|
|
117
|
+
### Forseti Rejects Every Plan
|
|
118
|
+
|
|
119
|
+
**Symptoms:** Forseti always returns "CHANGES REQUIRED" or "REJECTED".
|
|
120
|
+
|
|
121
|
+
**Causes:** The plan was not specific enough, missed edge cases, or skipped security considerations.
|
|
122
|
+
|
|
123
|
+
**Fix:** Provide more detail in the plan sent to Forseti: include specific file paths, data flow, error handling, and security implications.
|
|
124
|
+
|
|
125
|
+
### Wrong Model Used (Cost Leak)
|
|
126
|
+
|
|
127
|
+
**Symptoms:** Paid models being used for simple tasks that DeepSeek could handle.
|
|
128
|
+
|
|
129
|
+
**Fix:** Check routing in `odin.md` — ensure simple/mechanical work always routes to @heimdall first. If @thor or @tyr gets the task, update Odin's routing instructions.
|
|
130
|
+
|
|
131
|
+
## Config File Locations
|
|
132
|
+
|
|
133
|
+
| File | Purpose |
|
|
134
|
+
|---|---|
|
|
135
|
+
| `~/.config/opencode/opencode.json` | Main config (no minimax baseURL) |
|
|
136
|
+
| `~/.config/opencode/AGENTS.md` | Routing table and conventions |
|
|
137
|
+
| `~/.config/opencode/agents/odin.md` | Primary router agent |
|
|
138
|
+
| `~/.config/opencode/agents/mimir.md` | Research agent |
|
|
139
|
+
| `~/.config/opencode/agents/heimdall.md` | Simple tasks agent |
|
|
140
|
+
| `~/.config/opencode/agents/hermod.md` | Git operations agent |
|
|
141
|
+
| `~/.config/opencode/agents/thor.md` | Moderate implementation agent |
|
|
142
|
+
| `~/.config/opencode/agents/tyr.md` | Complex implementation agent |
|
|
143
|
+
| `~/.config/opencode/agents/vidarr.md` | Last resort agent |
|
|
144
|
+
| `~/.config/opencode/agents/forseti.md` | Plan auditor agent |
|
|
145
|
+
| `~/.config/opencode/agents/semble-search.md` | Code search tool definition |
|
|
146
|
+
|
|
147
|
+
## Quick Reference
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
┌──────────────────────┐
|
|
151
|
+
│ Odin ᛟ (M3) │
|
|
152
|
+
│ Router / Decompose │
|
|
153
|
+
└──────────┬───────────┘
|
|
154
|
+
│
|
|
155
|
+
┌───────────────┼───────────────┐
|
|
156
|
+
│ │ │
|
|
157
|
+
┌──────┴──────┐ ┌────┴────┐ ┌───────┴──────┐
|
|
158
|
+
│ Research │ │ Simple │ │ Moderate │
|
|
159
|
+
│ Mimir ᛗ │ │ Heimdall│ │ Thor ᚦ │
|
|
160
|
+
│ (DeepSeek) │ │ (DSeek) │ │ (M2.7) │
|
|
161
|
+
│ FREE │ │ FREE │ │ $ │
|
|
162
|
+
└─────────────┘ └─────────┘ └───────┬───────┘
|
|
163
|
+
│
|
|
164
|
+
┌──────────────────────┼──────────┐
|
|
165
|
+
│ │ │
|
|
166
|
+
┌──────┴──────┐ ┌───────┴──────┐ │
|
|
167
|
+
│ Git │ │ Complex │ │
|
|
168
|
+
│ Hermod ᚱ │ │ Tyr ᛏ (M3) │ │
|
|
169
|
+
│ (M2.7) $ │ │ $$ │ │
|
|
170
|
+
└─────────────┘ └───────┬───────┘ │
|
|
171
|
+
│ │
|
|
172
|
+
┌──────┴──────┐ │
|
|
173
|
+
│ Last Resort │ │
|
|
174
|
+
│ Vidarr ᛉ │ │
|
|
175
|
+
│ (GPT-5.5) │ │
|
|
176
|
+
│ $$$$ │ │
|
|
177
|
+
└─────────────┘ │
|
|
178
|
+
│
|
|
179
|
+
┌───────────────────┘
|
|
180
|
+
│
|
|
181
|
+
┌──────┴──────┐
|
|
182
|
+
│ Forseti ᚨ │
|
|
183
|
+
│ Auditor (M3) │
|
|
184
|
+
│ edit: deny │
|
|
185
|
+
│ $ │
|
|
186
|
+
└─────────────┘
|
|
187
|
+
```
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# C++ Coding Standards Skill
|
|
2
|
+
|
|
3
|
+
Modern C++17/20 standards skill for opencode. Loads when an agent is writing, reviewing, or refactoring C++ code. Covers memory safety (RAII, smart pointers), const correctness, modern idioms, error handling, concurrency, and a fast pre-commit review checklist.
|
|
4
|
+
|
|
5
|
+
## What it provides
|
|
6
|
+
|
|
7
|
+
- **SKILL.md** — quick-start checklist + 5 deep-dive references
|
|
8
|
+
- **references/memory-safety.md** — RAII, `unique_ptr`/`shared_ptr`/`weak_ptr`, Rule of Five/Zero
|
|
9
|
+
- **references/modern-idioms.md** — C++17/20 features with examples
|
|
10
|
+
- **references/error-handling.md** — exceptions vs `std::error_code` vs `std::expected`
|
|
11
|
+
- **references/concurrency.md** — mutex, lock_guard, atomic, jthread
|
|
12
|
+
- **references/review-checklist.md** — fast pre-commit gate
|
|
13
|
+
|
|
14
|
+
## When it triggers
|
|
15
|
+
|
|
16
|
+
- Editing or reviewing `.cpp`/`.hpp`/`.cc`/`.h` files
|
|
17
|
+
- Fixing C++ build errors
|
|
18
|
+
- Refactoring legacy C++ to modern idioms
|
|
19
|
+
- Reviewing C++ pull requests
|
|
20
|
+
|
|
21
|
+
## Manual install
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Copy whole folder to opencode's skills dir
|
|
25
|
+
cp -R SKILL.md references agents ~/.opencode/skills/cpp-coding-standards/
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
The BizarHarness installer can also install this automatically — select the **C++ coding standards** component.
|