Contributing¶
Getting Started¶
- Fork and clone the repo
npm installnpm run buildto confirm clean compilationnpm run verifyto confirm source tests, build-backed stdio integration, and generated artifacts all pass cleanly
Development Workflow¶
- Create a feature branch from
main - Make your changes
- Add or update tests — never reduce coverage
- Run
npm run verifybefore opening the pull request - Open a pull request
Code Style¶
- TypeScript strict mode — no
anyunless absolutely necessary - Zod schemas for all external input validation
- Pure functions preferred in services — side effects isolated to tool handlers
- Error boundary — all tool handlers wrap with
withErrorBoundary() - Consistent naming — kebab-case files, camelCase functions, PascalCase types
Testing Requirements¶
- Every new tool must have integration tests
- Every new parser must have unit tests with real-world sample output
- Every new service function must have unit tests
- Tests must be deterministic — no network calls, no filesystem dependencies (use mocks)
Adding Skills¶
Skills are markdown files in skills/. Follow this template:
# Skill Name
tags: keyword1, keyword2, keyword3
## Objective
What this skill accomplishes.
## Prerequisites
What's needed before using this skill.
## Methodology
Step-by-step approach with exact commands.
## Reporting
What to report via report_finding.
## OPSEC Notes
Noise considerations and stealth alternatives.
Tags improve search ranking — use specific terms the LLM might search for.
Commit Messages¶
Use conventional commits:
feat:— new featurefix:— bug fixdocs:— documentation onlytest:— adding or updating testsrefactor:— code restructuring without behavior change
Pull Request Guidelines¶
- Keep PRs focused — one feature or fix per PR
- Include a clear description of what changed and why
- Reference any related issues
- Ensure CI passes (tests + build)