Files
JWeBot/CONTRIBUTING.md

61 lines
1.5 KiB
Markdown

# Contributing
## Development Setup
```sh
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -r requirements-dev.txt
```
Run:
```sh
PATH="$PWD/.venv/bin:$PATH" ./tools/check-local.sh
```
## Privacy
Use synthetic names, IDs, hosts, addresses, messages, and provider responses in
tests and documentation. Never contribute:
- populated config profiles or generated output;
- API keys, tokens, passwords, private keys, or signing keys;
- real SteamIDs, display names, person aliases, or group identifiers;
- OCR history, screenshots, debug payloads, incident archives, or SQLite;
- personal home paths, SSH aliases, hostnames, or network addresses.
Run `./tools/check-secrets.py` before every commit.
## Plugins
Use `tools/create-plugin.py`, declare the smallest capability set, and keep
registration static after startup. Plugins must return structured SDK plans and
must not access GUI, shell, environment, filesystem, raw sockets, raw ledger,
or unrestricted network.
Any command change must update the ownership inventory and pass:
```sh
./tools/sync-local-extensions.py --check
./tools/check-packages.sh
```
## Tests
Add focused tests proportional to risk. Changes to GUI sending must cover
primary send, fallback, and visual confirmation. Changes to routing or shared
contracts require parity and restart coverage.
## Pull Requests
Describe:
- user-visible behavior;
- trust boundaries and capabilities touched;
- config/schema changes;
- migration and rollback behavior;
- tests run.
Do not include generated artifacts or unrelated formatting churn.