Welcome! Memact is an open protocol and reference implementation for portable, user-owned context. We're thrilled you want to contribute.
Memact participates in SSoC26 — a summer open source program for students and early-career engineers. If you're joining through SSoC26, please read every section of this guide carefully.
- One issue at a time. You may hold up to 10 active assignments across all Memact repos simultaneously (greylist contributors: 1).
- Request assignment, don't self-assign. Comment
/assignor "assign me" on the issue. The automation bot assigns you within 2 hours. - No bot pings. Do not comment repeatedly to ask for assignment status — the bot runs on a schedule.
- Stale policy. If you haven't made progress or updated your PR within 3 days of assignment, you will receive a stale reminder. Continued inactivity may result in unassignment.
- One PR per issue. Open exactly one PR for each issue. Duplicate PRs will be flagged automatically.
- Dummy PRs are required for some repos. For certain repos, you must open a tracking "dummy" PR in the
Contextrepo referencing your work PR and the issue number. Follow the repo-specific CONTRIBUTING guide. - Unassign yourself if you can no longer work on an issue by commenting
/unassign— this frees the issue for other contributors. - No plagiarism or AI-only submissions. AI-assisted code is allowed as a tool, not as a replacement for understanding. Reviewers will ask questions; be ready to explain your code.
- Labels are automatic. The SSoC26 bot labels issues and PRs — do not apply difficulty labels yourself.
- Respect the code of conduct. Be kind, constructive, and professional in all comments and reviews.
These rules apply to all contributors regardless of open source program participation.
- Check that the issue is open and unassigned before commenting to request assignment.
- Read the repo-specific README and any
CONTRIBUTING.mdin that repository. - Understand the Memact protocol and architecture — PRs that violate repository boundaries will be rejected.
Comment on the issue with one of:
/assign- "assign me"
- "I'd like to work on this"
- "Can I work on this?"
The automation bot will assign you. Do not open a PR before you are assigned.
- Branch name: use
feat/issue-<number>-short-description,fix/issue-<number>-..., orchore/.... - PR title: follow Conventional Commits —
feat:,fix:,docs:,chore:,refactor:,test:. - PR body: reference the linked issue with
Fixes #<number>orCloses #<number>. - Keep PRs small and focused — one issue, one PR. Large unrelated changes will be split or rejected.
- Do not open draft PRs unless you need early feedback; the AI reviewer only runs on ready PRs.
- No debug statements — remove all
console.log,debugger,print()before submitting. - No TODO/FIXME markers — resolve placeholders before review.
- No hardcoded secrets — never commit API keys, tokens, or passwords.
- Tests required — new functionality must include tests. Bug fixes should include a regression test.
- Follow existing style — match the formatting, naming conventions, and patterns already in the repo.
- Document public APIs — new exports, functions, and types must have JSDoc/docstring comments.
Memact is a multi-repo protocol. Each repository has a strict responsibility boundary:
| Repo | Owns | Must NOT own |
|---|---|---|
| Access | Auth, consent, permissions, revocation, sharing scopes, audit | Memory, claim semantics, business identity |
| Context | Categorization, ranking, relevance, freshness, contradiction resolution | Consent bypass, canonical user history |
| Memory | Persistence, journals, replay, indexing, retrieval support | Protocol policy, business logic |
| Contracts | Shared schemas, validators, protocol contracts | Business logic of any kind |
| SDK | CAP/CCP/CRP wrappers, auth helpers, developer experience | Product policy, protocol semantics |
| Notebook | User approvals, rectification, search, timeline, connected apps | Data persistence, auth logic |
PRs that mix responsibilities across these boundaries will be rejected, regardless of code quality.
- The SSoC26 automation bot runs an AI review (Gemini + Groq) on every non-draft PR.
- A human maintainer reviews and merges.
- Address all blocking AI review comments before requesting human review.
- Non-blocking suggestions are at your discretion but appreciated.
- Your PR is squash-merged.
- Your contribution is recorded in the project history under the Apache 2.0 license.
- The linked issue is automatically closed if your PR body uses a closing keyword (
Fixes #,Closes #).
Memact implements an open protocol for portable, user-owned context.
Core doctrine:
- Activity is not identity.
- Identity belongs to users, not apps.
- Apps contribute observations; users approve identity claims.
- Context is portable and permissioned.
- Freshness, confidence, relevance, provenance, and explainability matter.
Evidence flow:
Raw Activity → Evidence → Claim → Approval → Approved Claim → Memory → Retrieval
Protocols:
- CAP — Context Access Protocol: apps request approved context with consent and least-context principles.
- CCP — Context Contribution Protocol: apps contribute observations/evidence.
- CRP — Context Retrieval Protocol: retrieval of approved, permissioned context.
Prefer extending CAP, CCP, or CRP over inventing new protocols.
By contributing to Memact, you agree that your contributions will be licensed under the Apache License 2.0. See LICENSE.
All contributors are expected to be respectful, inclusive, and constructive. Harassment of any kind is not tolerated.
Open a Discussion or ask in the relevant issue thread.