Thanks for your interest in contributing! Here's how to get started.
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/<your-username>/recon.git cd recon
- Install dependencies:
npm install
- Build the project:
npm run build
- Create a feature branch from
main:git checkout -b feat/your-feature
- Make your changes
- Ensure the project builds:
npm run build
- Commit with a descriptive message:
git commit -m "feat: add support for Python analysis" - Push to your fork and open a Pull Request
Use Conventional Commits:
feat:— new featurefix:— bug fixrefactor:— code change that neither fixes a bug nor adds a featuredocs:— documentation onlychore:— build process, CI, tooling
src/analyzers/— Language-specific code analysis (TypeScript Compiler API, tree-sitter for 13 languages, cross-language)src/graph/— Knowledge graph, community detection, execution flow tracingsrc/mcp/— MCP server, 14 tool definitions, handlers, prompts, resourcessrc/search/— BM25 search index, hybrid semantic search, vector storesrc/query/— Cypher-like query parser and executorsrc/watcher/— Live file watcher with surgical graph updatessrc/export/— Mermaid/DOT graph exportsrc/review/— Graph-aware PR reviewsrc/server/— HTTP REST API + dashboard servingsrc/storage/— Index persistence (JSON file I/O)src/cli/— CLI commands (index, serve, status, clean, export, review)src/dashboard/— Interactive web dashboard (HTML/CSS/JS)
- TypeScript strict mode
- ES modules (
"type": "module") - Uses vitest for testing — run
npm test(459 tests across 17 suites)
Open an issue on GitHub with:
- What you expected to happen
- What actually happened
- Steps to reproduce
- Node.js and Go versions