Continuous integration
Pull requests and pushes tomain run .github/workflows/ci.yml:
- Ruff —
ruff check src/ tests/ - Pytest gate — MCP, OpenClaw/Hermes, clipboard, agent hub, and LLM fallback suites (expand as other modules stabilize)
pytest tests/.
Docs changes should also pass the local docs reliability checker:
Run tests
From a dev checkout:pytest and ruff):
Test suite overview
Thetests/ directory is organized by area:
Routing and NL parsing
LLM and providers
Vision and media
Integrations
Observability
Writing new tests
Place tests intests/ with the test_ prefix. Follow existing patterns:
arka.routing.symbolic helpers or arka.router.route() directly. Mock external APIs (LLM, web search) when tests should not hit the network.
Linting
ruff is included in the [dev] extra.
Local verification scripts
Beyond pytest, the repo includes helper scripts:Some tests require optional extras (
[chat], [charts], [drawings]) or API keys. Tests that need network access are typically mocked — if a test fails on import, install the matching extra first.