Skip to content

docs: add team usage guide β€” scope conventions and language strategy for shared memoryΒ #305

@carlosmoradev

Description

@carlosmoradev

πŸ“‹ Pre-flight Checks

  • I searched existing issues and this is not a duplicate
  • I have a link to the specific doc page or section that needs improvement β†’ DOCS.md

πŸ“„ Which Document?

DOCS.md β€” missing team usage section.


πŸ” What's Wrong or Missing?

DOCS.md documents Engram's mechanics well, but there is no guidance for teams adopting it collaboratively. Three specific gaps:

1. No mental model for scope: project vs scope: personal

The mem_save tool description only says:

"Scope for this observation: project (default) or personal"

There is no explanation of what this distinction means. A developer reading the docs cannot answer:

  • Who can see each scope?
  • Does git sync include personal observations?
  • When should I use one vs the other?

2. No language convention for shared memory

When a team uses engram sync to share project memory, there is no guidance on what language to use for scope: project observations.

Real scenario: a Spanish-speaking team works for a US English company. Code, commits, and PRs are in English. Personal notes (outside Engram) are in Spanish. But for scope: project Engram observations β€” no convention exists.

For globally distributed teams (e.g. Russian, French, Japanese, and English speakers on the same project), the consequences are concrete: if each developer saves project-scope memories in their native language, the shared knowledge base fragments. FTS5 cannot match a query in English against an observation saved in Spanish, so team members effectively can't find each other's shared knowledge.

3. No guidance on what belongs in each scope

Without a clear mental model, developers default to saving everything as scope: project (the default), polluting shared memory with personal notes β€” or avoid scope: personal entirely, missing the value of having a personal workspace within the same tool.


πŸ’‘ Suggested Improvement

A new docs/TEAM-USAGE.md (or a section added to DOCS.md) covering:

Scope mental model

  • scope: project = shared via git sync, accessible to all team members and their agents
  • scope: personal = your own workspace; syncs to your other devices via your personal sync repo, but not shared with teammates
  • Rule of thumb: if a teammate's AI agent should find this β†’ project; if it's your personal learning or preference β†’ personal

Language convention

  • scope: project β†’ lingua franca of the team (English for most international teams)
  • scope: personal β†’ any language you prefer
  • Why it matters: the lingua franca ensures all teammates can search and find shared memories regardless of native language. FTS5 is language-agnostic but not multilingual β€” a search in one language won't match content in another.

What to save in each scope (with examples)

Git sync workflow for teams

  • How scope interacts with sync
  • Personal sync repo (your devices) vs team sync repo (shared project)

I'm happy to write this documentation as a PR once approved.


πŸ“Ž Additional Context

The scope parameter already supports this pattern by design β€” it just isn't explained. This is a documentation-only contribution with no code changes required.

The insight came from reasoning through a real cross-device + team-sharing use case: personal notes in any language syncing across my own devices, while shared team memory stays in the lingua franca. The system already handles this correctly β€” it just needs to be documented so other developers don't have to reason through it from scratch.

Originally reported in #175 (opened from wrong GitHub account).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions