Files
hypothesis-machine/CONTRIBUTING.md

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.