User-Level Project Memory
Private per-project AIWG memory registry under ~/.aiwg/projects
User-Level Project Memory
AIWG can keep private project memory outside a repository under the operator's AIWG home. This avoids git noise from personal agent memory while preserving the same effective `.aiwg` layout used by project-local AIWG artifacts.
Layout
User-level project memory is rooted at:
~/.aiwg/projects/
manifest.json
index/
manifest-index.json
<project-id>/
.aiwg/
aiwg.config
memory/
index/
artifacts/
`manifest.json` records each registered project's stable id, display name, workspace roots, git remotes, metadata, and private `.aiwg` memory root. The `index/manifest-index.json` sidecar maps project ids, workspace roots, and git remotes to manifest entries so AIWG can resolve the active project without scanning every memory directory.
Commands
Register the current workspace:
aiwg memory project register
Inspect and resolve:
aiwg memory project list
aiwg memory project inspect
aiwg memory project inspect --remote [email protected]:roctinam/aiwg.git
aiwg memory project resolve
Maintain mappings:
aiwg memory project reindex
aiwg memory project relocate <project-id> ~/.aiwg/projects/<new-id>/.aiwg
aiwg memory project remove <project-id>
aiwg memory project remove <project-id> --delete-files
All commands accept `--json` for automation.
Resolution Order
Memory storage resolves in this order:
1. Explicit `.aiwg/storage.config` memory root or backend. 2. Project-local `.aiwg/memory` when the active workspace has a `.aiwg` directory. 3. Registered user-level project memory under `~/.aiwg/projects/<id>/.aiwg` when the active workspace path or git remote matches the manifest. 4. Default project-local `.aiwg/memory`.
This keeps reviewed project-local AIWG artifacts authoritative. User-level memory is best for private, per-operator context that should not be committed. Use project-local `.aiwg` when the memory or artifact must be shared, reviewed, or reproduced by collaborators.
Repository Pollution
Private memory roots live outside the checkout, so registering a project does not modify the target repository or require repository-specific `.gitignore` rules. The memory contents still use the normal `.aiwg` subdirectories, which lets existing storage commands and memory tools work with the relocated root.