# Workspace vs Context Pack AIWorkspace separates the installed product, user-local settings, and project memory. This distinction keeps the system simple, shareable, and safe for unrelated projects such as `client-mobile` and `it-support`. ## Three-Layer Model ```text AIWorkspace Core reusable installed product User/App Registry local machine settings and registered context packs Project Context Packs one isolated context package per project, client, or workstream ``` ## AIWorkspace Core The core is the reusable product. It can be shared with a team. Typical location during development: ```text ~/Developer/ai-workspace ``` It contains: ```text apps/ scripts/ connectors/ templates/ docs/ examples/ ``` It should not contain real project memory, captured messages, customer names, ticket details, or private prompts. ## User/App Registry The registry is local to one developer machine. It records which context packs are available and which project is active. On macOS, the target location is: ```text ~/Library/Application Support/AIWorkspace/ ``` Example registry: ```json { "schema": "aiworkspace.projects.v1", "default_project": "client-mobile", "projects": [ { "id": "client-mobile", "context_path": "/Users/david/Developer/client-mobile-ai-context" }, { "id": "it-support", "context_path": "/Users/david/Developer/it-support-ai-context" } ] } ``` The registry is not intended for Git. ## Project Context Pack A context pack is the portable project-specific unit. It may be a private repo, a team-shared repo, or a local folder. Example: ```text client-mobile-ai-context/ aiw.project.json knowledge/ inbox/ connectors/ agents/ prompts/ ``` Each context pack owns its own: - canonical memory; - raw evidence; - connector definitions; - people/channel/system maps; - prompts and agent instructions specific to that project. ## Why Not Store Everything In One Workspace Repo? One developer can work on unrelated projects. A single monolithic workspace can accidentally mix: - channels from different organizations; - people maps from unrelated clients; - raw evidence with different privacy rules; - prompts that only make sense for one domain; - AI behavior learned from one project but harmful in another. Context packs prevent this by making project boundaries explicit. ## Optional Product Repository Binding Product repositories should stay clean by default. If useful, a repo can contain a small optional binding file: ```text .aiworkspace.json ``` Example: ```json { "project": "client-mobile", "context_path": "/Users/david/Developer/client-mobile-ai-context" } ``` This file should point to context. It should not contain memory, secrets, or raw evidence.