Thanks for considering a contribution. CipherClaw is an open-source project and we welcome help from the community.
git clone https://github.com/Alexi5000/CipherClaw.git
cd CipherClaw
pnpm install
pnpm testAll 206 tests should pass. If they don't, open an issue.
Bug fixes — If you find something broken, fix it and send a PR. Include a test that would have caught it.
New capabilities — CipherClaw has 10 core debugging approaches. If you have an idea for an 11th, open a discussion first so we can talk about the design.
Better tests — More edge cases, more domains, more agent configurations. The test suite runs against the real engine with no mocks, and we want to keep it that way.
Documentation — If something is unclear, fix the docs. Clear writing is as valuable as clear code.
OpenClaw integration — Better event bus patterns, more skill manifest options, adapter improvements for different OpenClaw configurations.
- Fork the repo
- Create a branch (
git checkout -b fix/your-fixorfeat/your-feature) - Make your changes
- Run
pnpm test— all 206 tests must pass - Run
pnpm typecheck— zero errors in strict mode - Commit with a descriptive message
- Push and open a PR
CipherClaw is written in TypeScript with strict mode enabled. A few guidelines:
- Zero
anytypes in the public API. Internal use is acceptable when genuinely needed. - Brief comments on non-obvious logic only. No verbose JSDoc.
- New capabilities need tests. Not "a test" — tests that cover the happy path, edge cases, and error conditions.
- No runtime dependencies. CipherClaw is zero-dependency by design.
CipherClaw uses a modular architecture. Each capability lives in its own file under src/core/, and the engine is a thin orchestrator that wires them together.
- Types go in
src/types/index.ts - Module logic goes in a dedicated file under
src/core/(e.g.,causal-graph.ts,memory-debugger.ts) - Engine orchestration is in
src/core/engine.ts— it delegates to modules, never implements directly - OpenClaw tools are registered in
src/openclaw/manifest.ts - Adapter methods are added to
src/openclaw/adapter.ts - Exports are added to
src/index.ts - Soul files live in
skills/cipherclaw/(SKILL.md, SOUL.md)
This follows the OpenClaw skill and agent architecture. Keep things modular.
The test suite has three layers:
| Suite | Purpose |
|---|---|
unit-core-capabilities.test.ts |
Tests each of the 10 core capabilities independently |
e2e-session-lifecycle.test.ts |
Tests full debug session flows across domains |
smoke-api.test.ts |
Tests every public API method and event |
Run them with pnpm test. They use Vitest and run against the real engine — no mocks, no stubs.
Use descriptive messages:
fix: handle empty span arrays in causal graph construction
feat: add memory capacity overflow detection to tier debugging
test: add edge case for single-span anomaly detection
docs: clarify soul integrity scoring algorithm
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.
Open an issue or start a discussion. We're happy to help.