User-Level Indices
Shared user-level capability and corpus indices
User-Level Indices
AIWG supports shared user-level index sidecars for capabilities and other personal or organization-wide corpora. These indices live outside any project checkout and can be queried from any AIWG workspace.
Private project memory can also live under `~/.aiwg/projects/`; see `user-level-project-memory.md` for the manifest, index, and resolution order.
Built-In User Capability Graph
Place custom user capabilities under `~/.aiwg`:
~/.aiwg/skills/<name>/SKILL.md
~/.aiwg/agents/<name>.md
~/.aiwg/commands/<name>.md
~/.aiwg/rules/<name>.md
~/.aiwg/flows/<name>.yaml
~/.aiwg/frameworks/<bundle>/...
Build and sync the shared graph:
aiwg index build --graph user --force
aiwg index sync --graph user
The local graph is stored in the XDG AIWG index sidecar:
$XDG_DATA_HOME/aiwg/index/user/
$XDG_DATA_HOME/aiwg/index/fortemi-core/user/
If `XDG_DATA_HOME` is not set, AIWG uses `~/.local/share`.
Custom Global Graphs
Named user-level graphs can be declared in `~/.aiwg/aiwg.config`. The concise form is `indices.user.roots`:
{
"version": "1",
"indices": {
"user": {
"enabled": true,
"roots": {
"personal": {
"path": "~/.aiwg/indices/personal",
"backend": "local"
},
"org": {
"path": "~/.aiwg/indices/org",
"backend": "fortemi-core"
}
}
}
}
}
For lower-level graph options, use `index.graphs`:
{
"version": "1",
"index": {
"graphs": {
"user-research": {
"scanDirs": ["~/.aiwg/indices/research"],
"extensions": [".md", ".yaml", ".json"],
"shared": true,
"defaultBuild": false
}
}
}
}
Then build or query the graph from any project:
aiwg index build --graph user-research
aiwg index query "retrieval notes" --graph user-research --backend local --json
Project-local graph definitions take precedence over broad global defaults, and built-in graph names cannot be overridden.
Capability Discovery Precedence
Default capability discovery and show merge sidecar caches in this order:
1. `project` — project-local `.aiwg` capabilities 2. `user` — shared `~/.aiwg` capabilities 3. `framework` — packaged AIWG framework/addon/plugin capabilities
This means a project-local skill can override a user/global skill with the same name, and a user/global skill can override a packaged capability by name. JSON results include provenance:
{
"provenance": {
"graph": "user",
"scope": "user"
}
}
Use explicit graph selection when reproducibility requires a single source:
aiwg discover "custom review" --graph user --json
aiwg show skill custom-review --graph project --json
Project Opt-Out
Security-sensitive or reproducibility-sensitive projects can disable user-level capability sidecars by default in `.aiwg/aiwg.config`:
{
"version": "1",
"index": {
"userIndices": {
"enabled": false
}
}
}
Explicit `--graph user` still works for operators who intentionally select the user graph, but default merged capability discovery/show omits it.
Security Notes
User-level indices are local operator state. Do not rely on them for project-reproducible builds unless the project documents that dependency. Prefer project-local `.aiwg` capabilities for workflows that must be reviewed, versioned, and shared with collaborators.
Fortemi Core remains a static index/search cache. It does not scan the filesystem; AIWG builds the local graph first, then exports/syncs it. Removing `$XDG_DATA_HOME/aiwg/index/fortemi-core/user/` clears the Fortemi user cache without deleting the local user graph or source files.