This document separates three things that should never be confused:
- the source checkout path
- the deployed runtime root
- the optional heavy-data vault path
That separation is what allows abyss-stack to be Fedora-first while still usable from Windows-oriented workflows.
AOA_STACK_ROOT— deployed Linux runtime rootAOA_CONFIGS_ROOT— config root, usually${AOA_STACK_ROOT}/ConfigsAOA_VAULT_ROOT— optional heavy-data vault rootAOA_SOURCE_ROOT— optional canonical source checkout root used for parity-aware helpers such asaoa-status --autonomyAOA_AGENTS_ROOT— optional source root used to mirror public-safeaoa-agentssurfaces into the runtime treeAOA_ROUTING_ROOT— optional source root used to mirror public-safeaoa-routingadvisory surfaces into the runtime treeAOA_MEMO_ROOT— optional source root used to mirror public-safeaoa-memorecall and writeback-seam surfaces into the runtime treeAOA_EVALS_ROOT— optional source root used to mirror public-safeaoa-evalseval-selection and export-contract surfaces into the runtime treeAOA_PLAYBOOKS_ROOT— optional source root used to mirror public-safeaoa-playbooksactivation and composition advisory surfaces into the runtime treeAOA_KAG_ROOT— optional source root used to mirror public-safeaoa-kagderived retrieval and regrounding surfaces into the runtime treeAOA_TOS_ROOT— optional source root used to mirror the source-ownedTree-of-Sophiahandoff companion surfaces into the runtime treeAOA_RUNTIME_USER— runtime username for a few host-specific mountsAOA_RUNTIME_UID— runtime UID for a few host-specific mounts
| layer | default path |
|---|---|
default abyss-stack source checkout |
~/src/abyss-stack |
| deployed runtime root | /srv/abyss-stack |
| configs | /srv/abyss-stack/Configs |
| secrets | /srv/abyss-stack/Secrets |
| services | /srv/abyss-stack/Services |
| models | /srv/abyss-stack/Models |
| knowledge | /srv/abyss-stack/Knowledge |
| logs | /srv/abyss-stack/Logs |
| codex home | /srv/abyss-stack/.codex-home |
| optional vault | /abyss |
optional aoa-agents source root |
/srv/aoa-agents |
optional aoa-routing source root |
/srv/aoa-routing |
optional aoa-memo source root |
/srv/aoa-memo |
optional aoa-evals source root |
/srv/aoa-evals |
optional aoa-playbooks source root |
/srv/aoa-playbooks |
optional aoa-kag source root |
/srv/aoa-kag |
optional Tree-of-Sophia source root |
/srv/Tree-of-Sophia |
The source checkout path is a Fedora-first default, not a universal host constant.
If the repository is intentionally relocated on another machine, set AOA_SOURCE_ROOT to the actual source checkout path.
These are normal editing paths, not the canonical deployed runtime root:
C:\Users\<user>\src\abyss-stackD:\src\abyss-stack- any other convenient source path
Do not treat the current compose surface as a native Windows-first runtime. Instead:
- keep the source checkout on Windows wherever convenient
- deploy the runtime inside WSL2 or a Linux-oriented Podman machine
- inside that Linux layer, keep the runtime root canonical as
/srv/abyss-stack
A host-side path such as:
D:\abyss-vault
may be mounted into the Linux runtime as:
/abyss
That preserves one stable in-runtime contract even when the host path differs.
The repository includes helper scripts that bridge from a source checkout into the runtime tree:
scripts/aoa-install-layoutscripts/aoa-sync-configsscripts/aoa-bootstrap-configs
Parity-aware helpers such as scripts/aoa-status --autonomy may also use AOA_SOURCE_ROOT when the canonical source checkout is not under ~/src/abyss-stack.
Those scripts exist to keep the separation explicit instead of relying on path confusion.
Because the current compose surface still includes Linux-specific assumptions such as:
- rootless Podman workflows
- SELinux-oriented volume flags like
:Z - Linux device mounts like
/dev/dri - user-unit systemd lifecycle
So the right move is not to fake native parity. The right move is to keep:
- Windows-friendly source paths
- Linux-canonical deployed runtime paths
When editing docs or scripts, ask:
- is this path about source checkout?
- is this path about deployed runtime?
- is this path about the optional vault?
If those layers get mixed, drift begins.