Thank you for your interest in contributing to OCC (Orchestrator Chain Chimera).
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/OCC.git - Install dependencies:
cd mcp-server && npm install - Run tests:
npm test - Start dev server:
npm run rest
mcp-server/src/
index.ts # MCP server entry point
rest.ts # REST API + SSE server
executor.ts # Chain execution engine
claude-runner.ts # Claude CLI subprocess management
pretool-executor.ts # Pre-tool execution (27 types)
pretool-extras.ts # Advanced pre-tools (vectors, embeddings, etc.)
gate-manager.ts # Human-in-the-loop gate system
loader.ts # YAML chain loader + Zod validation
pipeline-loader.ts # Pipeline YAML loader
pipeline-executor.ts # Pipeline execution
storage.ts # SQLite persistence
queue.ts # Job queue with priority
scheduler.ts # Cron scheduling
linter.ts # Chain validation + security warnings
utils.ts # Variable resolution, condition evaluation
mcp-client.ts # External MCP server consumption
types.ts # TypeScript interfaces + Zod schemas
# Backend (2344 tests, 59 files)
cd mcp-server
npm test # Run all backend tests
npm test -- --watch # Watch mode
npm test -- loader # Run specific test file
# Frontend (899 tests, 52 files)
cd frontend-react
npm test # Run all frontend testsnpm run build # TypeScript compilation- Open an issue first to discuss the change
- Create a feature branch:
git checkout -b feature/my-feature - Write tests for new functionality
- Ensure
npm testpasses - Ensure
npx tsc --noEmitpasses (type check) - Submit a PR with a clear description
- TypeScript strict mode
- Zod validation at API/YAML boundaries
execFileSyncinstead ofexecSyncfor subprocess calls- Parameterized SQL queries (never interpolate user input)
sanitizeName()for all filesystem-facing name parameters
When contributing new chain YAML files:
- Run
occ validate ./chainsto lint your chains - Review the linter output — warnings about
bash/db_queryare expected but should be justified - Include a description and realistic input examples
- Test with
occ dry-run your-chain -i key=value
See SECURITY.md for vulnerability reporting. Do NOT open public issues for security vulnerabilities.
MIT — see LICENSE