Space mapping: putting every person's AI memory in the right place
Paper v0.3 · superseded by the space and memory model v1.1 Fresh design 2026-10-09 v0.2: space IDs, manifest and session routing (user proposal) v0.3: four kinds of actor, digital workers
This paper sets aside what cMCP does today and designs from the problem up. It draws on earlier research (Q-35) and two new research agents (company knowledge graphs and catalogs; space identity and ownership). Nothing was built from this draft directly: it was folded into the space and memory model v1.1, which was built as stages 1l–1t.
1. The problem
The company owns fixed spaces that people work in: GitHub / Bitbucket organizations and their repos, Jira projects, Confluence spaces, shared drives, Slack / Teams channels, servers. They change slowly and the company decides what they belong to.
People have their own spaces: a personal GitHub, their own Drive or OneDrive, Notion pages, local folders on several machines, chat-app projects. In both kinds of space they use many AI apps, agents and bots, and those create memory all day.
2. The idea in one picture
- Every space gets one stable address built from the platform's own id (not its name, URL or path), plus a list of aliases (clone URLs, mirrors, local paths on each machine).
- Every space has an owner side — company, person or client — decided from hard signals (the tenant, organization or domain it lives in), never from guesses. Unknown means "person" until someone confirms.
- Spaces are linked to the company's places (org → project → team, client) by declared, confirmed or suggested links, each with its evidence and confidence. A suggested link never widens who can see anything.
- Every memory item carries a full memory address: org, place, space, person, bot, app, agent run, plus how sure each part is.
- Each item is stored once, at its origin (the person or bot, in that space). Links decide what it counts toward — no copies.
- The same items build two memories: collective people memory (what the people working on a place know, privately held, shared in aggregate) and organizational memory (curated, approved knowledge of the place). Collective feeds organizational by promotion; organizational flows back down to everyone working in a linked space.
- cMCP seeds every app with the person's space IDs (a space manifest), so the app knows where it is from the start. The app marks each stretch of its session with the active space ID and posts its memory; cMCP routes each item to its space, and what can't be routed stays in the person's private work pool (section 10).
3. Concepts
| Term | Meaning | Examples |
|---|---|---|
| Place | A unit of the company's structure that memory can belong to | Org, project, team, client |
| Space | Anywhere work happens and memory is created; has a kind, a stable address and an owner side | Repo, Jira project, Confluence space, shared drive, My Drive folder, Slack channel, Notion page, local folder, chat-app project |
| Person | One human, with many accounts in many tools | Alice: SSO login, GitHub login, Atlassian account, Slack user |
| Agent | An AI app working for one person, inside their sessions, with no identity of its own | claude.ai, the Claude CLI on Alice's laptop |
| Task bot | A short-lived actor that runs one task for a person or an agent, under a sponsor | A CI review bot, a nightly report job |
| Digital worker | A long-lived AI worker with its own identity (e-mail, name, ID), assigned to places, with a master | "Shipping release coordinator" |
| App | One installed AI tool for one person on one device, or one bot's runtime | "Claude Code on Alice's laptop", "ChatGPT on Alice's phone" |
| Agent run | One working session or job run of an app | A Claude Code session id, a cron run id |
| Link | A statement that a space belongs to a place, with kind, evidence, confidence and who made it | "shipping-api → project Shipping (declared by the repo's mapping file)" |
| Memory address | The full who / where / how stamp carried by every memory item | See section 6 |
| Space ID | cMCP's own id for a registered space (sp_…); one per space, never per person | sp_ship_api |
| Space manifest | The list of a person's space IDs with their recognisers and place paths, sent to each app at session start | See section 10 |
| Work pool | The person's private memory that is not (yet) routed to a space; routed later when a link appears | Notes from ~/scratch |
| Session copy | The session memory an app posted, kept as the source of the routed items | Session 9c1, 30 days |
| Lane | Where an item is physically stored: the origin actor in the origin space | "Alice · shipping-api", "nightly-bot · SHIP" |
4. Identifying a space
Rule: the identity of a space is the platform's stable id inside its tenant. Names, URLs, keys and local paths change, so they are only aliases. (Every product studied separates the two: Microsoft drive + item ids, Google file ids, Backstage entity references, OpenLineage namespace + name.)
Address format: space:<kind>:<tenant or host>/<stable id>, plus aliases and an owner side.
| Kind | Stable id (the address) | Read locally by an agent? | Owner side comes from | Watch out |
|---|---|---|---|---|
| Git repo | Host repo id (GitHub id, Bitbucket UUID) when known, plus the set of root commits; without a host: the root-commit set alone | Yes: remotes and git rev-list --max-parents=0 --all | Company org or workspace vs a user's namespace; managed (enterprise) accounts | Same remote spelled many ways; forks and mirrors share root commits; shallow clones hide them |
| Google Drive | File or folder id; shared-drive id | No documented way; confirm through the person's connected account | Shared drive = company; My Drive = person; Workspace domain (hd) present or not | Shortcuts; link "resource keys" are secrets, not ids |
| OneDrive / SharePoint | Tenant + site + item id (or drive id + item id) | Partly: sync root from settings, then look the path up online | Tenant id; SharePoint library = company; personal OneDrive has no SharePoint ids | Item id is only unique inside its drive |
| Dropbox | Namespace id of the team or shared folder | No (local attributes hold a machine-only id) | Team space vs member's home folder | A member's root id changes after a migration |
| Jira / Confluence | Site cloud id + numeric project or space id | No (from connector or branch names) | The site's organization | Keys get renamed; old keys still resolve |
| Slack / Teams | Workspace (and enterprise) id + channel id; Teams: tenant + team + channel | No (from connector) | Enterprise / tenant id; a channel shared with other organizations is a client signal | Names change; shared channels span companies |
| Notion | Page or database id | No | Teamspace vs a member's private section | Page ids move with the page |
| Chat-app project | The app's project or conversation id | Only if the app passes it | The account (work plan vs personal plan) | Mobile chats often have no project at all |
| Local folder | A marker file with a generated id (.cmcp-space), else machine + path | Yes | The signed-in person | Copies duplicate the marker; ask when two folders claim one id |
5. Identifying who: person, bot, app, agent run
| Question | How it is answered | Trusted? |
|---|---|---|
| Which org | The account the sign-in or key belongs to | Verified |
| Which person | Company sign-in (SSO). Other tool accounts (GitHub login, Atlassian account id, Slack user id, personal Google account) are linked to the person once, by the person signing in to each, or by the company directory. Unmatched accounts are shown, not silently dropped | Verified |
| Which bot | The bot's own key or credential; every bot has a sponsor (a person) and a home place | Verified |
| Which app | A registered installation: tool + device + person (a device key or the tool's sign-in client). The tool name and version are labels on top | Verified installation; label declared |
| Which agent run | The tool's own session, conversation or run id, sent with every call and kept per app | Declared (never grants anything) |
| Which team / project | Not sent by the caller: derived from the space's links and the person's or bot's memberships | Derived from verified data |
| Which space | Sent by the app (fingerprint from its folder or project), resolved to an address by the server | Declared, then matched with a confidence |
Key point: the caller only says where it is and what it is doing; cMCP works out the rest. A bot or app never claims an org, person, team or project — those come from the credential and the space graph, so they cannot be faked.
Four kinds of actor (added in v0.3, 2026-10-09)
The solid facts:
- the org is created by the web-admin and has an org ID;
- people are identified by e-mail, name, mobile and ID, and work for the org;
- agents are attached to a person and hold longer conversations with them (claude.ai, the Claude CLI);
- bots are attached to a person or an agent for a specific task.
The new case is AI workers with their own e-mail, name and ID, a long life (a project or the whole org), working on their own and talking to people and other bots by e-mail or Teams, with a person as master. These are a separate kind of actor. In cMCP they are called digital workers ("AI workers" or "agent identities" elsewhere; "robot" works in conversation).
| Person | Agent (delegated) | Task bot | Digital worker (new) | |
|---|---|---|---|---|
| Own identity | Yes | No: uses the person's sign-in | A key issued under a sponsor | Yes: own e-mail, name, ID and directory entry, plus accounts in Teams, Slack and Jira |
| Works for | The org | One person, inside their sessions | A person or an agent, for one task | A project, team or the org |
| Lifespan | Employment | A session or an installation | One run or one job | The project's or org's life, with an end date and reviews |
| Member of places | Yes | No: works within the person's places | No: borrows its launcher's scope, narrowed to the task | Yes: assigned to projects and teams like a member |
| Memory | Own lanes, User and Personal memory | The person's lanes (marked with the agent) | Its own lane, limited to the task | Own lanes and its own "worker memory"; never Personal memory |
| Rights ceiling | Their role | Never more than the person | Never more than its launcher; the task only | Its assigned role, never more than its master; never ADMIN |
| Accountable | Themselves | The person | Its sponsor | Its master, plus a named backup |
| Talks to | Anyone | Its person | No one (writes results) | People and bots, by e-mail, Teams, Slack and Jira |
| Example | Alice | Claude CLI on Alice's laptop | A CI review bot, a nightly report job | "Shipping release coordinator", ship-coordinator@pilot |
Why a separate kind, and not a person or a bot.
- A digital worker is a member of places and keeps memory across months, like a person.
- It is not human: no HR data, no Personal memory, accountable to someone else, and limited in what it may decide.
- Treating it as a person would give it powers it must never have.
- Treating it as a task bot would lose its identity and long memory.
Identity providers are moving the same way, giving AI agents their own directory identities. The IETF agent-auth draft also says each agent should have its own identity and calls shared static keys an anti-pattern.
How a digital worker maps into cMCP
- Created only by an ADMIN, in person. Each one gets a purpose, a master and a backup, the places it is assigned to, an end date, and limits on spend and on calls. A digital worker never creates another one.
- Its own identity record, like a person's. Its e-mail, Teams, Slack and Jira accounts are linked to it the same way a person's accounts are (section 5). Each credential is its own and short-lived; it never uses its master's.
- Members of places, with ceilings. It is assigned to projects and teams. It may read and write memory there, but it never becomes ADMIN, never approves or grants anything, and never reads anyone's Personal memory or private work pool.
- Its own memory.
- Lanes per space, like a person's, so its items count toward the places it works in.
- Worker memory, about how it does its job. This is the equivalent of a person's User memory.
- Its conversations are spaces. A mail thread, Teams chat or Slack channel it works in gets a space address and an owner side like any other space. When it writes to a client, the client's wall applies.
- Its input is untrusted. Mail and messages from outside, or from other bots, can carry planted instructions. They become memory only as data, never as instructions, never as must-apply items, and reach shared memory only through review.
- Promotion is decided by people. Its items count in collective memory and are marked AI. But "seen by three or more people" counts only humans, so AI workers can never out-vote people.
- The chain is stamped on every item. The memory address names the digital worker, its master, and anything it launched: for example "task bot X, launched by digital worker Y, master Alice".
- Lifecycle.
- The master reviews it every 90 days.
- A kill switch pauses it at once.
- If its master leaves and no new master is named within 7 days, it is paused.
- At retirement, what it learned about its places stays with those places, and its worker memory is handed to a successor or archived.
- It always says what it is. Every message and memory item carries an AI badge and names who it works for.
6. The memory address on every item
The address is written when the item is created and never rewritten. If a link changes later, the item keeps its original address and the new link is applied by version, so history stays honest.
7. Linking people's spaces to organizational places
Four kinds of link
| Kind | Who makes it | Effect |
|---|---|---|
| Same space | The matcher, when a person's space is a copy of a company space (clone, mirror, synced shared drive) | It is the company space: company owner side, the company space's links apply |
| Declared | The company: the catalog, a mapping rule ("Bitbucket project SHIP → project Shipping") or a mapping file inside the space (.cmcp.yaml: org / project / team) | Full link |
| Confirmed | The person ("my folder 'ship notes' belongs to Shipping"), accepted by the place's lead when it changes what others can see | Full link for that person's items; others' visibility only after the lead accepts |
| Suggested | The matcher, from evidence below | Shown to the person as "looks like Shipping — link?"; changes nothing until confirmed |
Matching ladder
| Evidence | Confidence | Action |
|---|---|---|
| Same host id, or same tenant + same stable id | ≈ 0.99 | Same space, automatically |
| Identical root-commit set, or same normalised URL with matching roots | ≈ 0.95 | Same space, automatically, shown as "linked" |
| One shared root commit but another URL (fork or mirror); a Jira key from the branch name; a mapping file | ≈ 0.8 | Probable: link for the person, ask before anything changes ownership or visibility |
| Similar names, same people active, memory content close to a project's memory | 0.4–0.8 | Suggestion in a review list |
| Little or nothing | < 0.4 | Stays unlinked (private) |
8. Placement: where a memory item goes
Principle: store once at the origin, count by links. The item is stored in its lane (the person or bot, in that space). Nothing is copied into team or project memory. Links decide what the item counts toward; promotion decides what becomes organizational memory.
| The space is… | Link | Item is stored | Counts toward | Who can read the item itself |
|---|---|---|---|---|
| Company-owned | Declared or same space | Person's (or bot's) lane in that space | Collective memory of the linked places; may be promoted to their org memory | The person; their apps; aggregated views for the place |
| Company-owned | None yet | Same | Collective memory of the org (unplaced); the company is asked to link the space | The person |
| Person-owned | Confirmed by the person | Person's lane | Collective memory of the linked place | The person; shared items only after they choose |
| Person-owned | None or suggested | Person's lane | Nothing outside the person | The person only |
| Client-owned | Declared to a client place | Person's lane behind that client's wall | That client's collective and org memory only | The person and the client team |
| Bot space (its run) | The bot's home place | The bot's lane | Collective memory of the home place; org memory only by approval | The sponsor and the place's lead |
| No space (phone chat) | — | Person's lane, "unplaced" | Nothing until the person or the app adds a place | The person |
Kind of memory also matters: a preference about the person ("Alice prefers short answers") stays personal wherever it was said; a fact about the work ("SHIP deploys use blue-green") follows the space's links. The writer (the app's model, a hook or the bot) marks each item as about the person or about the work; the server checks.
9. Two memories from the same items
- All items, in all lanes, that count toward a place.
- Each stays owned by its person or bot; nothing is copied.
- Used in aggregate: "7 people working on Shipping noted the canary rule" — counts and themes, not names, unless the person shared the item.
- Grows automatically as people work; reflects what is actually done.
- A person's own AI sees their items plus the place's organizational memory; it sees others' items only when they were shared.
- Curated, approved knowledge of a place (project, team, org, client).
- Built by promotion from collective memory (seen by several people, rewritten without names, approved by the lead), by the company directly, and by connectors.
- Each organizational item links back to the collective items that support it (evidence, not names).
- Flows down to everyone working in any space linked to that place, on every tool.
- Survives people leaving.
10. Space IDs, the space manifest and session routing (user proposal, 2026-10-09)
- The company registers its fixed spaces as facts (org, project, team, user), and cMCP issues an internal space ID for each.
- cMCP seeds every app that creates memory (Claude and others) with the person's space IDs at the start, so the app knows from the beginning what it must confirm before it continues or saves.
- One session may touch many spaces. The app posts its memory to cMCP, and cMCP decides which part goes to which space ID. The rest stays in the person's work pool, together with a copy of the session memory.
| # | Adjustment | Why |
|---|---|---|
| A | Keep the person out of the space ID.
| IDs for every org + project + team + user combination multiply (people × projects × teams). They change whenever someone moves team, and they reveal who works where in every ID. Projects and teams are separate axes; one space usually belongs to one project, with a team as owner. |
| B | The helper or hook matches the manifest, not the model. Matching is exact, on repo ids, remotes, root commits, folder markers, Jira keys and Drive folder ids. The model only receives the result: "you are in Shipping (sp_ship_api)". | Models skip instructions; a hook always runs. Exact matching on the person's own machine is fast, works offline and needs no guessing. |
| C | Ask only when a space is unknown, and only once.
| A tool that interrupts every new folder gets switched off. Late binding (section 10, step 6) means nothing is lost by asking later. |
| D | Routing labels; it never shares. Giving an item a space ID decides what it counts toward. Who can see it still follows section 8. | A wrong route must never expose a person's item to a team. |
The flow
- Register. The company's fixed spaces are registered from connectors and from facts (org, project, team, owner). cMCP issues a space ID for each and links it to its place IDs.
- Seed. At session start, cMCP sends the app a space manifest:
- the person's space IDs, each with its recognisers (remote URLs, root commits, host ids, folder markers, Jira keys, Drive folder ids, chat project names) and its place path;
- a version number, so later changes arrive as small updates.
- Detect.
- The helper matches the working folder, every folder change and the file paths the tools touch, all on the person's machine.
- It tells the app the current space and marks each stretch of the session with the active space ID.
- Unknown folders get a local marker and a pending question.
- Post. At checkpoints (after answers, before compaction, at the end), the app posts:
- its session memory: the notes and facts it made, with the space tags per stretch and the session id;
- a copy of the session memory, kept as the source. Whole transcripts are kept only under the M-105 rules.
- Route. cMCP splits the memory into single items and decides each one, using the strongest evidence first:
- the stretch's space tag;
- an explicit mention that matches the manifest, such as a repo name, Jira key or path;
- similarity to that space's memory. This is weak evidence, so it can only make a suggestion.
- Pool. Anything that can't be routed with enough confidence stays in the person's work pool, which is private. It is routed later when a link appears (late binding), and a weekly digest lets the person sort what remains.
- Return. The answer says what went where and returns the updated memory for the current space. The next session's manifest includes any new spaces and links.
What the app must confirm before saving, and what it doesn't
| Situation | App behaviour |
|---|---|
| Folder matches a space ID in the manifest | Nothing to confirm; works and saves, tagged |
| Folder is a copy of a company space not in the person's manifest (they aren't a member) | Saves to the work pool and offers "ask to join project X" |
| Unknown folder or personal repo | Saves to the work pool and asks once: link, keep private or later |
| Client space | Must be confirmed first if the company's policy says so; otherwise as above, behind the client's wall |
| No folder (phone chat) | Saves to the work pool, unless the person or the app names a place |
A limit to accept: cMCP can't stop a tool writing its own local memory (for example Claude Code's memory files). It can make sure every local note is tagged and copied with the right space ID, because the helper knows the space for each stretch of the session.
11. Discovery: how the graph fills itself
- Connectors list company spaces: Bitbucket / GitHub organizations and repos, Jira projects, Confluence spaces, shared drives, Slack / Teams channels — by API, kept current by webhooks.
- Company tenants are registered once (Bitbucket workspace, GitHub org, Google domain, Microsoft tenant, Slack enterprise, Atlassian site). Anything inside them is company-owned; client tenants are registered as clients.
- Mapping rules turn structure into links ("Bitbucket project SHIP → project Shipping", "Jira SHIP → Shipping").
- Optional mapping file in a repo (
.cmcp.yaml) for exceptions.
- Each AI app (through a small helper or hook) reports the space it works in: repo fingerprint, folder marker, the tool's project id.
- A person can connect personal accounts (personal GitHub, own Drive) so their spaces can be resolved to stable ids and owner sides.
- The matcher compares every new space with the catalog, then asks once when unsure.
- The person sees "My spaces": each space, its owner side, its links, and what it counts toward — and can change their own links.
12. Changes over time
| Event | What happens |
|---|---|
| Repo renamed, moved or mirrored (GitHub → Bitbucket) | Same address; the new URL becomes an alias (host id or root commits match) |
| Repo forked | A new space with a "fork of" link; suggested to the same place, not merged |
| Personal repo adopted by the company | Owner side changes only with the person's consent; earlier items stay in the person's lane, and the person chooses which to share |
| Space re-linked to another project | New items follow the new link; old items keep their address; the lead can choose to move history |
| Project or team closes | Organizational memory archived by the company's retention; collective links end |
| Person changes team | Their lanes stay theirs; counts move with the space links, not with the person |
| Person leaves | Items in company-owned spaces: company data (kept per retention, already-promoted knowledge stays); items in person-owned spaces: removed or exported to the person per policy |
| Bot retired | Its lane is frozen; the sponsor or lead decides what to keep |
Rule: ownership of a memory item follows the owner side of the space when the item was created.
13. Worked examples
Alice works in the company Bitbucket repo on her laptop and on a server, and in her personal GitHub repo ship-tools. Both clones resolve to one company space (host id), linked to Shipping, so her items count toward Shipping from either machine. ship-tools is person-owned; the matcher suggests Shipping (it uses the SHIP Jira key in branch names); she confirms, so her ship-tools items count toward Shipping while staying hers.
Bob keeps client notes in his own Drive. The folder is person-owned. Its content resembles the client "Acme" place, so the matcher suggests it; because it is client data, confirming it puts his items behind Acme's wall, and the Acme lead accepts. Until then they stay private.
The review bot runs in shipping-api with its own key and Alice as sponsor; its home place is Shipping. Each run sends the repo fingerprint and run id. Its findings land in the bot's lane, count toward Shipping, and reach organizational memory only through approval.
A channel shared with the client's Slack organization has the client's team id, so it is client-owned and linked to the client place. Items stay behind that client's wall even though the channel lives in the company's Slack.
Alice asks ChatGPT on her phone about release rules. There is no space; the item is "unplaced" in her lane. If the app passes its project ("Shipping"), or she says which place, it is linked like any other space.
~/scratch gets a marker id on first use. It is person-owned and unlinked, so nothing leaves Alice's lane unless she links it.
14. Data model sketch
| Table | Holds |
|---|---|
tenants | Registered company and client tenants per platform (workspace, org, domain, tenant id, enterprise id) → owner side |
places | Org, projects, teams, clients and their tree |
spaces | Address, kind, tenant, owner side and its basis, catalog or registry origin, status |
space_aliases | URLs, keys, names, local paths per machine, root commits |
space_links | Space → place, kind (same / declared / confirmed / suggested), confidence, evidence, made by, valid from / to (versioned) |
people, accounts | One person, many tool accounts (verified how, when); unmatched accounts listed |
actors | One table for every kind: person, agent, task bot, digital worker; kind, master and backup, purpose, end date, status (active / paused / retired) |
bots / workers | Task bots: sponsor, launcher, task scope. Digital workers: places assigned, ceilings, limits, review date |
apps | Installation: tool, device, person or bot, credential |
runs | Agent run / session id per app, space, start and end |
memory_items | Content, kind (about the person / about the work), lane, and the full address (org, space, person, bot, app, run, places at creation, confidence per part) |
manifests | Per person: version, spaces included, sent to which apps |
session_copies | Posted session memory per run, with per-stretch space tags; retention |
routing_decisions | Item → space(s) or work pool, evidence used, confidence, re-routed when |
counts_toward | Derived view: item → places through links (no copies) |
promotions | Organizational item ← supporting collective items, approver, date |
15. Rollout in steps
| Step | Delivers | Proves |
|---|---|---|
| 1. Addresses and catalog | Space addresses, aliases, company tenants, git and Jira catalog from Bitbucket / GitHub / Jira, mapping rules | Every company repo and project has one address and a place |
| 2. Memory address on every item | Space IDs, the space manifest sent to apps, local matching by the helper, per-stretch tags and run id; server stamps the full address and routes; work pool; "My spaces" page | Any item can answer the seven questions |
| 3. Person spaces and linking | Registry from apps and connected personal accounts, matcher ladder, ask-once links | Personal repos and folders land correctly or stay private |
| 4. Collective and organizational memory | Counts-toward view, aggregate views per place, promotion with evidence | Knowledge built from people's work reaches the place and flows back down |
| 5. More kinds of space | Drives, Slack / Teams, Notion, chat-app projects, client tenants | The same model for every space kind |
16. Decisions for review
| # | Question | Suggestion |
|---|---|---|
| 1 | Store once at the origin and count by links (no copies into team / project memory)? | Yes |
| 2 | Unknown owner side defaults to the person (private)? | Yes |
| 3 | Who may link a person-owned space to a company place? | The person; the lead accepts when others will see items |
| 4 | Collective memory visible to the place in aggregate only (counts and themes, no names)? | Yes; names only for items the person shared |
| 5 | Do items in company-owned spaces belong to the company when the person leaves? | Yes; person-owned spaces stay the person's |
| 6 | Mapping file inside repos (.cmcp.yaml) allowed to declare links? | Yes inside company tenants only; ignored in personal spaces |
| 7 | Should content similarity ever create a link without a human? | No: suggestions only |
| 8 | First space kinds | Git (Bitbucket, GitHub) and Jira, then Drive and Slack |
| 9 | One space ID per space (person not part of it), plus a work-context handle for apps? | Yes |
| 10 | What does the manifest send to apps? | Only the person's own spaces, with recognisers and place paths; client spaces only when assigned; for real accounts only to apps on the allowed list |
| 11 | Unknown space: block or not? | Don't block: work pool plus a one-time question; block only for client spaces when policy says so |
| 12 | Keep a copy of the posted session memory as the source? | Yes, 30 days by default; whole transcripts only under the M-105 rules |
| 13 | Long-lived AI workers with their own identity: a separate kind of actor? | Yes, as a "digital worker", alongside person, agent and task bot |
| 14 | Who creates digital workers, and what may they never do? | Only an ADMIN, in person. They are never ADMIN, never approve or grant, never read Personal memory, and never create other workers |
| 15 | Do digital workers count toward "three or more people" for promotion? | No: only humans count; their items are marked AI |
| 16 | What happens when a digital worker's master leaves? | A new master within 7 days, or the worker is paused |
17. Sources
Research for this paper (2026-10-09)
- Company graphs and catalogs: Glean knowledge graph, Glean identity aliases, Teamwork Graph relationships, Teamwork Graph permissions, Backstage entities, Backstage relations, Backstage GitHub discovery, Microsoft Graph drive, Google shared drives, GitHub managed users, Bitbucket workspaces, Linear GitHub linking, Slack Connect.
- Space identity and ownership: git rev-list, GitHub repos API, Drive file ids, SharePoint ids, Dropbox namespaces, Slack channel object, Notion parents, OpenLineage naming, SWHID, Google hd claim, SCIM.
- Earlier research reused: Q-35 page (AI tools, hooks, memory products, identity and sync standards).
- Not verified, test before building: whether GitHub / Bitbucket ids survive rename and transfer; any local way to read Google Drive or OneDrive ids from synced folders (assume none); Notion workspace ids; Teams chat ids; Glean's and Atlassian's inference details.