Contributing to oc8
This section is for anyone working on oc8's core — the agent runtime, the capa loader, the authorization layer, the database layer, the frontend shell.
Documentation hub (all audiences): docs/index.md
If you're building a capa instead — a connector, an MCP tool bridge, a runtime adapter, a model provider, an approval channel, or a data-only bundle — see Developer instead. Most changes to oc8 belong there, not here: per the microkernel principle, a change specific to one piece of software or one use case belongs in a capa, not in core.
Where to start
- Core Architecture — the microkernel principle, the subsystem map, the agent execution loop, and multi-tenancy. Read this first.
- Coding Guidelines — lint/type-check configuration and the testing discipline this codebase expects.
- Git Guidelines — commit message conventions and pre-PR checks.
Opening a pull request
- Fork or branch, make your change, and follow Coding Guidelines and Git Guidelines.
- Run the full check locally before opening the PR — lint, type-check, and the full test suite. A PR that doesn't pass locally won't pass CI either.
- Describe why, not just what, in the PR description. If the change touches core, say which mechanism it adds or fixes and why it couldn't be a capa instead.
Reporting a bug
Open an issue with: what you expected, what happened instead, and the smallest reproduction you can manage. If the bug is in a specific capa rather than core, say so — it changes who's likely to pick it up.