Scopes & domains
A correction you make in one project shouldn’t leak into a different one. PLUR uses two orthogonal mechanisms: scope controls where an engram applies; domain controls what topic it covers.
Scope is a hierarchical namespace. Examples:
global— always loadedproject:my-app— only loaded formy-appcluster:prod— only loaded when working against the prod clusterservice:api— only loaded for theapiservicegroup:acme/platform— Enterprise team scope (details)
Recall filters by the current scope but always includes global. So if you’re in project:my-app and ask “what do I know about deploys”, you get project:my-app engrams + global engrams, not project:other-app.
Setting current scope
Section titled “Setting current scope”Adapters detect scope automatically from the active project:
- Claude Code / Cursor / Windsurf: PLUR reads
.plur.yamlfrom the project root if present. - CLI:
plur init --scope project:my-appwrites.plur.yaml. - Programmatic: pass
scopeto any MCP tool.
.plur.yaml
Section titled “.plur.yaml”scope: project:my-appdomain: backend # default domain when learningHooks pick this up automatically — corrections made in this project get tagged with scope: project:my-app and domain: backend unless you override.
Domain
Section titled “Domain”Domain is a topic tag. Examples:
software.deploymentsoftware.gitplur.brandinfrastructure.agentsfirm.miles.heartbeat
Conventional separator is . — feel free to invent. Domain is soft routing: recall doesn’t strictly filter by domain, but the embedder weights it heavily, so an engram with domain: software.deployment ranks higher when you ask deploy questions.
How scope and domain combine
Section titled “How scope and domain combine”| Scope | Domain | Behaviour |
|---|---|---|
global | unset | Always considered. |
project:x | unset | Considered when current scope = project:x. |
global | software.git | Always considered, but ranks higher on git topics. |
project:x | software.git | Considered for project:x; ranks higher on git topics inside project:x. |
The rule: scope is a hard filter, domain is a soft signal.
Enterprise group scopes
Section titled “Enterprise group scopes”In PLUR Enterprise, you also get team scopes:
group:acme— anyone in theacmeorggroup:acme/platform— only the platform teamgroup:acme/platform/api-service— service-level
These resolve against your identity (OIDC, SAML, GitHub, GitLab) and the team membership recorded in the admin dashboard. Permissions are enforced server-side — see Permissions & scopes.
Next: Activation & decay →