Contributing
Getting Started
Section titled “Getting Started”Contributions are welcome. Please open an issue first to discuss what you’d like to change.
Dev Setup
Section titled “Dev Setup”git clone https://github.com/agentwilson/wilson.gitcd wilsonbun installcp env.example .env # set at least one LLM provider keyRunning
Section titled “Running”bun start # interactive modebun run dev # watch modeTesting
Section titled “Testing”bun test # all testsbun test src/__tests__/ofx-parser.test.ts # single test fileType Checking
Section titled “Type Checking”bun run typecheck # tsc --noEmitGitHub Actions runs bun run typecheck and bun test on push/PR to main.
Project Conventions
Section titled “Project Conventions”- TypeScript everywhere — Bun’s built-in TS for the CLI
- ESM modules —
"type": "module"in package.json - Path alias —
@/*maps tocli/src/* - Amount convention — Negative = expense, positive = income/credit
- Bun test runner — Test files in
src/__tests__/
Ways to Contribute
Section titled “Ways to Contribute”Add a Bank Parser
Section titled “Add a Bank Parser”Create a new parser in src/tools/import/parsers/:
- Export a parse function that returns
ParsedTransaction[] - Add header detection logic to
detect-bank.ts - Add tests in
src/__tests__/
Create a Skill
Section titled “Create a Skill”Write a SKILL.md and submit it:
- Follow the format in Custom Skills
- Place in
src/skills/your-skill/SKILL.md - Test with real transaction data
- Submit a PR
Improve Categorization
Section titled “Improve Categorization”The category taxonomy is in src/categories/pfc-taxonomy.ts. Improvements to category mapping and AI categorization prompts are welcome.
Add an LLM Provider
Section titled “Add an LLM Provider”Provider adapters live in src/model/providers/. If the provider supports the OpenAI-compatible API, it can share the existing adapter — just add the prefix mapping in src/providers.ts.
Issue Templates
Section titled “Issue Templates”Use the issue templates for bug reports and feature requests.