docs: add initial project architecture, concepts, and quick-start documentation
This commit is contained in:
127
docs/concepts/workspace-vs-context-pack.md
Normal file
127
docs/concepts/workspace-vs-context-pack.md
Normal file
@@ -0,0 +1,127 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user