126 lines
3.1 KiB
Markdown
126 lines
3.1 KiB
Markdown
# Project Manifest Reference
|
|
|
|
Each project context pack is described by an `aiw.project.json` file at the root of the context pack.
|
|
|
|
The manifest defines project identity, storage paths, connectors, code locations, and AI client preferences. Paths are relative to the context pack unless explicitly absolute.
|
|
|
|
## Minimal Manifest
|
|
|
|
```json
|
|
{
|
|
"schema": "aiworkspace.project.v1",
|
|
"id": "my-project",
|
|
"display_name": "My Project",
|
|
"knowledge_dir": "knowledge",
|
|
"inbox_dir": "inbox"
|
|
}
|
|
```
|
|
|
|
## Full Example
|
|
|
|
```json
|
|
{
|
|
"schema": "aiworkspace.project.v1",
|
|
"id": "client-mobile",
|
|
"display_name": "Client Mobile",
|
|
"description": "Project context pack for a mobile application team.",
|
|
"knowledge_dir": "knowledge",
|
|
"inbox_dir": "inbox",
|
|
"connectors_dir": "connectors",
|
|
"prompts_dir": "prompts",
|
|
"agents_dir": "agents",
|
|
"connectors": {
|
|
"mattermost": {
|
|
"enabled": true,
|
|
"config": "connectors/mattermost.json"
|
|
},
|
|
"photos": {
|
|
"enabled": true,
|
|
"config": "connectors/photos.json"
|
|
}
|
|
},
|
|
"code_locations": [
|
|
{
|
|
"name": "Development machine",
|
|
"availability": "remote-machine"
|
|
}
|
|
],
|
|
"ai_clients": {
|
|
"opencode": {
|
|
"enabled": true
|
|
},
|
|
"copilot": {
|
|
"enabled": true
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## Fields
|
|
|
|
| Field | Required | Description |
|
|
|---|---:|---|
|
|
| `schema` | yes | Manifest schema version. Current target: `aiworkspace.project.v1`. |
|
|
| `id` | yes | Stable lowercase project id used by CLI and MCP. |
|
|
| `display_name` | yes | Human-friendly project name. |
|
|
| `description` | no | Short project description. |
|
|
| `knowledge_dir` | yes | Canonical Markdown memory directory. |
|
|
| `inbox_dir` | yes | Raw evidence directory. |
|
|
| `connectors_dir` | no | Directory for connector configs. Defaults to `connectors`. |
|
|
| `prompts_dir` | no | Directory for project prompts. Defaults to `prompts`. |
|
|
| `agents_dir` | no | Directory for project agent config. Defaults to `agents`. |
|
|
| `connectors` | no | Connector registry for this project. |
|
|
| `code_locations` | no | Local or remote code locations associated with this project. |
|
|
| `ai_clients` | no | AI client integration preferences. |
|
|
|
|
## Code Locations
|
|
|
|
Code may be local, remote, or unavailable on the current machine.
|
|
|
|
```json
|
|
{
|
|
"name": "iOS App",
|
|
"path": "/Users/dev/Developer/app-ios",
|
|
"role": "consumer-app",
|
|
"availability": "local"
|
|
}
|
|
```
|
|
|
|
Supported target availability values:
|
|
|
|
- `local`
|
|
- `remote-machine`
|
|
- `not-configured`
|
|
- `unknown`
|
|
|
|
## Connector Configs
|
|
|
|
Connector definitions should describe source behavior without storing secrets.
|
|
|
|
Example `connectors/mattermost.json`:
|
|
|
|
```json
|
|
{
|
|
"schema": "aiworkspace.connector.mattermost.v1",
|
|
"enabled": true,
|
|
"context_channels": [
|
|
"team-standup",
|
|
"team-code-review"
|
|
],
|
|
"secret_refs": {
|
|
"session": "keychain:aiworkspace/mattermost/session"
|
|
}
|
|
}
|
|
```
|
|
|
|
## Validation Rules
|
|
|
|
A production-ready manifest validator should check:
|
|
|
|
- required fields exist;
|
|
- project id is stable and path-safe;
|
|
- configured directories exist or can be created;
|
|
- connector config files exist when enabled;
|
|
- secrets are referenced, not embedded;
|
|
- code locations are explicit about local vs remote availability.
|