This project is designed to work with a local OpenCode + oh-my-opencode setup while keeping the experiment controller as the stable authority path.
npm cipython3 -m pip install "dvc>=3,<4" "dvclive>=3,<4"npm install -g opencode-ai oh-my-opencodecp .env.example .envFill in:
KIMI_CODING_API_KEYKIMI_CODING_BASE_URL- optionally
INNOVATION_LOOP_AGENT_MODEL
If you use mixed providers for specialists, also configure the provider credentials required by your local OpenCode setup (for example OpenAI and GitHub Copilot tokens).
npm run build
npm test
npm run test:smokeIf you want to open plain opencode from any terminal directory and still trigger this system through slash commands, install the global integration layer:
bash scripts/install-opencode-global.shThis installs:
- user-level command files into
~/.config/opencode/commands/ - the
research-brainskill into~/.config/opencode/skills/
After installation, you can open opencode anywhere and use:
/experiment-init/experiment-status/research-context/innovate-loop
To remove the global integration:
bash scripts/uninstall-opencode-global.shpython3 scripts/innovation_loop.py bootstrap --config configs/goal.yaml --workspace . --mode mock
python3 scripts/innovation_loop.py tick --config configs/goal.yaml --workspace . --mode mock
python3 scripts/innovation_loop.py status --config configs/goal.yaml --workspace . --mode mockpython3 scripts/kb/run_maintenance_cycle.py --vault-root ../vault --workspace-root . --config configs/research_brain.yamlpython3 scripts/kb/run_inference_cycle.py --workspace-root . --config configs/research_brain.yaml --round 1To keep the research system stable when OpenCode or oh-my-opencode changes, use this policy:
- Treat
scripts/innovation_loop.pyas the authority path. - Keep plugin-facing TS code as a bridge layer, not a second controller.
- After every OpenCode / oh-my-opencode upgrade, run:
npm run build
npm test
npm run test:smoke- If real DVC is available, also run:
npm test -- tests/e2e/python-controller-real-dvc.test.ts- Do not change
opencode.jsonand agent model wiring casually during the same upgrade as controller logic. - Keep a known-good specialist mapping in
opencode.jsonand only upgrade one provider surface at a time when debugging upstream changes.
# 1. update tools
npm install -g opencode-ai oh-my-opencode
# 2. refresh local JS deps if needed
npm ci
# 3. rebuild and test
npm run build
npm test
npm run test:smokeIf any of those fail, do not continue with experiments until the controller path is green again.
- OpenCode / oh-my-opencode may change outer surfaces.
- This repository stays stable by keeping:
- Python controller as truth source
- structured artifacts in
experiments/ - research-brain scripts under
scripts/kb/ - TypeScript tools as adapters
As long as those boundaries remain intact, upgrades are usually manageable.