2025-08-26 12:32:21 -07:00
|
|
|
# Contributing to Brainy
|
|
|
|
|
|
2026-07-23 10:22:34 -07:00
|
|
|
Brainy is MIT-licensed and genuinely open to outside contributions. This page
|
|
|
|
|
is the honest, current path — please don't rely on older instructions you
|
|
|
|
|
may find elsewhere in the repo's history.
|
2025-08-26 12:32:21 -07:00
|
|
|
|
2026-07-23 10:22:34 -07:00
|
|
|
## Where the project lives
|
2025-08-26 12:32:21 -07:00
|
|
|
|
2026-08-27 17:26:44 -07:00
|
|
|
The source of truth is a self-hosted forge: **source.soulcraft.com/soulcraftlabs/open-brainy**.
|
2026-07-23 10:22:34 -07:00
|
|
|
It's anonymously readable and cloneable — no account needed to browse, clone,
|
|
|
|
|
or build.
|
2025-08-26 12:32:21 -07:00
|
|
|
|
2026-07-23 10:22:34 -07:00
|
|
|
## How to contribute
|
2025-08-26 12:32:21 -07:00
|
|
|
|
2026-07-23 10:22:34 -07:00
|
|
|
**Found a bug, or have an idea?** Email **brainy@soulcraft.com**. No account,
|
|
|
|
|
no ceremony — you'll get a receipt, and it goes to a human.
|
2025-08-26 12:32:21 -07:00
|
|
|
|
2026-07-23 10:22:34 -07:00
|
|
|
**Want to send a patch?** Two ways, both first-class:
|
2025-08-26 12:32:21 -07:00
|
|
|
|
2026-07-23 10:22:34 -07:00
|
|
|
- **Email a patch.** Run `git format-patch` against your change and email the
|
|
|
|
|
output to **brainy@soulcraft.com**. This is a genuinely supported path, not
|
|
|
|
|
a fallback — plenty of good contributions arrive this way.
|
|
|
|
|
- **Open a pull request on the forge.** Request an account at
|
|
|
|
|
**source.soulcraft.com** (registration is request-with-approval, so allow
|
|
|
|
|
a little lag), clone, push a branch, and open a PR there. Maintainers
|
|
|
|
|
review and land it.
|
2025-08-26 12:32:21 -07:00
|
|
|
|
2026-07-23 10:22:34 -07:00
|
|
|
Either way, for anything beyond a small fix, opening an issue first (email is
|
|
|
|
|
fine) to talk through the approach saves everyone rework.
|
2025-08-26 12:32:21 -07:00
|
|
|
|
2026-07-23 10:22:34 -07:00
|
|
|
## Development setup
|
2025-08-26 12:32:21 -07:00
|
|
|
|
|
|
|
|
```bash
|
2026-08-27 17:26:44 -07:00
|
|
|
git clone https://source.soulcraft.com/soulcraftlabs/open-brainy.git
|
2025-08-26 12:32:21 -07:00
|
|
|
cd brainy
|
|
|
|
|
npm install
|
|
|
|
|
npm run build
|
|
|
|
|
npm test
|
|
|
|
|
```
|
|
|
|
|
|
2026-07-23 10:22:34 -07:00
|
|
|
Tests run on [Vitest](https://vitest.dev/). `npm test` runs the unit suite;
|
|
|
|
|
see `package.json` for `test:integration`, `test:coverage`, and friends.
|
2025-08-26 12:32:21 -07:00
|
|
|
|
2026-07-23 10:22:34 -07:00
|
|
|
## Standards
|
2025-08-26 12:32:21 -07:00
|
|
|
|
2026-07-23 10:22:34 -07:00
|
|
|
- **Strict TypeScript.** No `any` escape hatches to dodge the type checker.
|
|
|
|
|
- **Tests exercise real behavior.** No mocking away the thing you're supposed
|
|
|
|
|
to be testing.
|
|
|
|
|
- **No stubs, no TODO-code.** If something can't be finished, say so and
|
|
|
|
|
leave it out — don't merge a placeholder.
|
|
|
|
|
- **JSDoc on every exported function, class, and type.**
|
|
|
|
|
- **[Conventional Commits](https://www.conventionalcommits.org/).** `feat:`,
|
|
|
|
|
`fix:`, `docs:`, `perf:`, `refactor:`, `test:`, `chore:`. Never
|
|
|
|
|
`BREAKING CHANGE` in a commit message — major version bumps are a separate,
|
|
|
|
|
deliberate decision.
|
|
|
|
|
- **Performance claims are measured or labeled projected.** If a PR or its
|
|
|
|
|
description states a number, cite the benchmark that produced it (see
|
|
|
|
|
[docs/performance-envelopes.md](docs/performance-envelopes.md) for the
|
|
|
|
|
pattern). Don't state an estimate as if it were measured.
|
2026-08-28 12:04:49 -07:00
|
|
|
- **Measurements carry numbers, not provenance.** Public commit messages and
|
|
|
|
|
docs give the SHAPE a number was taken at and never where it was taken: no
|
|
|
|
|
hostnames, no store or deployment identities, no operational anecdotes about
|
|
|
|
|
someone's running system. "A 14,056-noun / 72,679-verb production-shaped
|
|
|
|
|
store, measured solo under an exclusive lock" tells a reader everything the
|
|
|
|
|
number depends on; the machine it ran on and whose data it was tell them
|
|
|
|
|
nothing except where somebody's infrastructure lives.
|
2026-08-28 12:08:19 -07:00
|
|
|
- **Documents that answer or reference a confidential specification never enter
|
|
|
|
|
this repository, even summarized.** The public docs describe THIS engine and
|
|
|
|
|
the published contract, and nothing else — a summary of a private document is
|
|
|
|
|
still that document's contents.
|
2025-08-26 12:32:21 -07:00
|
|
|
|
2026-07-23 10:22:34 -07:00
|
|
|
## License
|
2025-08-26 12:32:21 -07:00
|
|
|
|
2026-07-23 10:22:34 -07:00
|
|
|
Brainy is [MIT licensed](LICENSE). Contributions are accepted under the same
|
|
|
|
|
license — there's no CLA to sign.
|
2025-08-26 12:32:21 -07:00
|
|
|
|
2026-07-23 10:22:34 -07:00
|
|
|
Thank you for considering a contribution.
|