Thanks for your interest in contributing! Here's how to get started.
git clone https://github.com/aksika/abtars.git
cd abtars
npm install
npm run build
npm testRequires Node.js 22+.
- TypeScript strict mode
- Named exports over default exports
constoverlet, novar- PascalCase for classes/interfaces, camelCase for functions/variables, UPPER_SNAKE_CASE for constants
- No
any— useunknownand narrow - Always define return types for functions
- Fork the repo
- Create a branch from
dev(git checkout -b my-fix dev) - Make your changes
- Run
npm test— all tests must pass - Run
npm run build— must compile clean - Commit with a descriptive message
- Open a PR against
dev
Format: type: description (#ticket)
Types: feat, fix, docs, test, refactor, chore
Examples:
feat: add IRC platform adapter (#399)
fix: session switch loses context (#622)
docs: update sleep pipeline in wiki
src/
boot/ — startup phases (ordered)
components/ — core logic (pipeline, transport, sessions)
platforms/ — Telegram, Discord, IRC adapters
capabilities/ — optional features (browser, sleep)
cli/ — CLI commands
core/
skills/ — built-in skills
core_templates/ — seed files for fresh installs
npm test # full suite
npm run test:watch # watch mode
npx vitest run src/components/my-file.test.ts # single fileWrite tests for new features. Match existing patterns — vitest, mocked dependencies, no external calls. PRs without tests won't be accepted.
- Bug fixes (check GitHub Issues)
- Platform adapters (WhatsApp, Slack, etc.)
- Skills (see
core/skills/for examples) - Documentation improvements
- Test coverage for untested modules
- Don't add provider-specific logic to core (see
provider-universality.md) - Don't commit secrets, API keys, or personal data
- Don't modify the watchdog system without discussion
- Don't open PRs against
main— always targetdev
Open a GitHub Issue with the "question" label.