Version: 1.0 Effective: 2026-06-03
The body responsible for approving spec changes.
Current composition:
| Role | Organisation |
|---|---|
| Chair | 8mem (Ashish Verma) |
How seats are added:
This is the planned path to neutrality. Control follows adoption.
All changes to the Engram spec follow this process.
Step 1 — IDEA
Open a GitHub Discussion tagged "RFC Idea"
Describe: the problem, the proposed change, who it helps
Step 2 — DRAFT RFC
If ≥5 upvotes or steering group interest:
Author writes RFC using the template below
Opens a GitHub Issue titled: "RFC-NNN: [description]"
Step 3 — COMMENT PERIOD
Minimum 14 days open
Steering group must comment within 14 days
Author responds to all substantive comments
Step 4 — STEERING GROUP VOTE
Accept / Reject / Defer
Result posted in the Issue
Step 5 — IMPLEMENTATION
Spec PR merged → engramspec.org updated within 48 hours
Changelog entry added
Community notified via GitHub Releases
# RFC-NNN: [Title]
**Author:** [Name]
**Status:** Draft
**Created:** YYYY-MM-DD
**Target version:** 0.x / 1.x
## Problem
[What breaks today? Who feels this? Be specific.]
## Proposed Change
[What exactly changes? API endpoint, schema field, behaviour?]
## Example
[Before and after — concrete JSON or curl if applicable.]
## Backwards Compatibility
[Does this break existing implementations? Migration path if yes.]
## Alternatives Considered
[Why is this approach better than the alternatives?]
## Open Questions
[What needs community input?]
| Version | Meaning |
|---|---|
0.x |
RFC / draft phase — breaking changes allowed with discussion |
1.0 |
Stable — triggered when ≥3 independent implementations exist |
1.x |
Backwards-compatible additions only |
2.0 |
Breaking change — migration guide required ≥30 days before |
What counts as a breaking change: removing a required field, changing a field type, removing an endpoint, changing error code values, changing the signing algorithm, making an optional field required.
When in doubt, treat as breaking.
These properties cannot be changed by any RFC or version bump:
GET /v1/context must always be available — export is unconditionalexpires_at is mandatory — stale memory must not persist silentlycorrections array is append-only — audit trail is permanentGET /v1/context — the user’s right to read their own memory is free| Tier | Label | Requirements |
|---|---|---|
| 1 | Reader | GET /v1/context, inject system_prompt_injection, check expires_at |
| 2 | Writer | + POST /v1/context/correct, GET /v1/context/diff, user confirmation for corrections |
| 3 | Full | + Ed25519 verification, scoped exports, conformance test suite pass |
See spec/CONFORMANCE.md for the full test suite.
When ≥10 independent implementations exist:
This is how the spec outlives any single organisation.
Requirements:
steering-group-nominationEngram Governance v1.0 — CC BY 4.0