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.
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.
Register the current workspace:
aiwg memory project registerInspect and resolve:
aiwg memory project list
aiwg memory project inspect
aiwg memory project inspect --remote git@git.integrolabs.net:roctinam/aiwg.git
aiwg memory project resolveMaintain 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-filesAll commands accept --json for automation.
Memory storage resolves in this order:
- Explicit
.aiwg/storage.configmemory root or backend. - Project-local
.aiwg/memorywhen the active workspace has a.aiwgdirectory. - Registered user-level project memory under
~/.aiwg/projects/<id>/.aiwgwhen the active workspace path or git remote matches the manifest. - 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.
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.