vibe-memory is a small protocol repo. Most contributions fall into one of three categories.
Changes to the protocol itself are the most impactful — they change behavior for every consumer.
- Open an issue first describing the problem and the proposed change.
- In your PR, bump the
Protocol versionheader at the top ofMEMORY_PROTOCOL.mdusing semver (breaking → major, additive → minor, clarification → patch). - Add a
CHANGELOG.mdentry under a new version section. - Append a
decisionentry tomemory/decisions.jsonlwithcomponent: "protocol"describing the change.
When a new agent runtime gains traction, add a dedicated entry point so users can opt in by simply having the file present.
- Mirror the structure of the existing entry points.
- Specify the agent's stable
authoridentifier in the attribution section. - Document any runtime-specific quirks (hooks, settings, sandboxing).
The validator, CI, schemas, and hooks are tooling. They must remain stdlib-only (no third-party Python deps) so the install path stays a single curl | tar.
- Add tests in
tests/for any validator change. Runpython3 -m unittest discover -s testslocally before pushing. - Keep
scripts/validate.pyworking under Python 3.10+.
- One JSON object per line in
*.jsonl. ISO-8601 timestamps.authorfield required. decisions.jsonlanddrift.jsonlare append-only — never edit or delete entries.architecture.md≤ 200 lines,progress.md≤ 100 lines.
python3 scripts/validate.py # validate ./memory
python3 scripts/validate.py path/to/memory
python3 -m unittest discover -s testsTags follow v<major>.<minor>.<patch>. The version in MEMORY_PROTOCOL.md's header and the latest CHANGELOG.md section must match the tag.