128 lines
2.7 KiB
Markdown
128 lines
2.7 KiB
Markdown
# 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.
|