Thanks for contributing to Pi-Memory.
- keep the code small
- preserve the C + SQLite core simplicity
- prefer reliability over cleverness
- keep cross-platform behavior explicit and testable
npm run setup
npm run doctor
npm run test:smoke
npm pack --dry-runNotes:
- there are no runtime npm dependencies for the core memory engine
npm run setupcopies a matching prebuilt when available, otherwise compiles from sourcebun run setupis also supported
native/— C source + makefiles + SQLite amalgamationextensions/— Pi extension(s)skills/— Pi skill(s)prompts/— prompt templatesdocs/— user/developer docsprebuilds/— platform-specific prebuilt binaries when committed
- Open an issue first for non-trivial changes.
- Keep the PR scoped to one concern.
- Include before/after behavior.
- Update docs for user-visible behavior.
- Run the validation steps and include output.
- Avoid bundling research artifacts or unrelated local tooling into the PR.
- No unrelated files changed
- Native build still succeeds cleanly
-
npm run doctorpasses -
npm run test:smokepasses - Docs updated where needed
- Backward compatibility considered
- Cross-platform impact considered (macOS / Linux / Windows)
- prefer straightforward control flow over abstraction layers
- keep allocations bounded and obvious
- use prepared statements for SQL
- do not modify the bundled SQLite amalgamation unless intentionally updating upstream
- preserve compatibility with existing
memory.dbfiles
- keep lifecycle hooks best-effort and non-fatal
- use timeouts on external calls
- avoid hardcoded provider assumptions where generic behavior is possible
- keep install/runtime helpers consistent with
scripts/setup.mjs