40 lines
1.5 KiB
Markdown
40 lines
1.5 KiB
Markdown
# Contributing
|
|
|
|
Hypothesis Machine is an extension of the official Pi Coding Agent. Contributions
|
|
should preserve that boundary: do not fork Pi, duplicate its chat/runtime/session
|
|
features, or introduce third-party multi-agent frameworks.
|
|
|
|
## Local setup
|
|
|
|
Requirements are Node.js 22.19+, npm, and optionally Docker with Compose. Pi model
|
|
credentials are not needed for the automated test suite.
|
|
|
|
```bash
|
|
npm ci
|
|
npm run check
|
|
docker compose -f infra/compose.yaml config --quiet
|
|
npm pack --dry-run
|
|
```
|
|
|
|
Use `npm install` instead of `npm ci` only when intentionally changing
|
|
dependencies, and include the resulting `package-lock.json` update.
|
|
|
|
## Pull requests
|
|
|
|
- Keep changes focused and explain user-visible behavior and security impact.
|
|
- Add or update tests for behavior changes.
|
|
- Use only official `@earendil-works/pi-*` packages for the agent layer.
|
|
- Do not commit `.hypothesis-machine/`, credentials, model transcripts, fetched
|
|
sources, experiment data, or generated package archives.
|
|
- Keep model/network-dependent checks optional; CI must remain free of paid API
|
|
calls.
|
|
- Update `CHANGELOG.md` for user-visible changes.
|
|
|
|
Web inputs are hostile data, and generated experiment code must stay inside the
|
|
Docker runner. Changes to URL validation, filesystem boundaries, session
|
|
inheritance, or Docker arguments need explicit regression tests.
|
|
|
|
See [`docs/development.md`](docs/development.md),
|
|
[`docs/architecture.md`](docs/architecture.md), and
|
|
[`docs/security.md`](docs/security.md) for implementation details.
|