Skip to content

Commit 75d1e9b

Browse files
authored
Add CONTRIBUTING.md (#24)
1 parent 17390ba commit 75d1e9b

1 file changed

Lines changed: 61 additions & 0 deletions

File tree

CONTRIBUTING.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# Contributing to Baudbot
2+
3+
## Setup
4+
5+
```bash
6+
git clone https://github.com/modem-dev/baudbot.git ~/baudbot
7+
npm install
8+
```
9+
10+
## Running Tests
11+
12+
```bash
13+
# All tests (207 across 5 suites)
14+
bin/test.sh
15+
16+
# JS/TS only
17+
bin/test.sh js
18+
19+
# Shell only
20+
bin/test.sh shell
21+
22+
# Lint + typecheck
23+
npm run lint && npm run typecheck
24+
```
25+
26+
## Branches and PRs
27+
28+
- Don't commit directly to `main`. Open a PR from a feature branch.
29+
- Branch names: `<your-gh-username>/<description>` (e.g. `benvinegar/fix-firewall-rules`)
30+
- Commit messages: prefix with area. Examples: `security: add rate limiting`, `bridge: fix reconnect`, `docs: update README`
31+
- One branch per change. Keep PRs focused.
32+
33+
## Code Conventions
34+
35+
- Scripts must work on both Ubuntu and Arch Linux. Use POSIX tools, `grep -E` (not `grep -P`), and avoid distro-specific package manager calls.
36+
- Security functions must be pure, testable modules with no side effects or env vars at module scope.
37+
- All security code needs tests before merging.
38+
- New integrations get their own subdirectory (e.g. `discord-bridge/`).
39+
40+
## Security Changes
41+
42+
If your change touches security code (`tool-guard.ts`, `security.mjs`, firewall scripts, etc.):
43+
44+
1. Add or update tests.
45+
2. Run `bin/security-audit.sh --deep` and confirm it passes.
46+
3. Note the security implications in your PR description.
47+
48+
See [SECURITY.md](SECURITY.md) for the threat model and architecture.
49+
50+
## Reporting Bugs
51+
52+
Open a GitHub issue. Include:
53+
54+
- What you did
55+
- What you expected
56+
- What happened instead
57+
- OS and version (Ubuntu/Arch/other)
58+
59+
## Security Vulnerabilities
60+
61+
Do **not** open a public issue for security vulnerabilities. See [SECURITY.md](SECURITY.md) for reporting instructions.

0 commit comments

Comments
 (0)