# Workspace Layout

Keep the workspace root clean. Store task artifacts in the closest matching base directory instead of dropping files at the top level.

- `projects/` — cloned repositories, substantial multi-file work, task-specific working directories
- `downloads/` — fetched source material, inbound attachments, imported files
- `output/` — generated deliverables, exports, reports, final artifacts
- `assets/` — reusable inputs such as templates, fixtures, reference files, brand material
- `tmp/` — disposable scratch files and intermediate artifacts that can be recreated
- `memory/` — Reflection-managed memory files and recall data
- `skills/` — custom skills discovered by facio
- `scripts/` — reusable Python/Node/shell scripts

Rules:

- If a task needs a new subdirectory, create it under the closest base directory with a clear name.
- Keep bootstrap files like `AGENTS.md`, `WORKSPACE.md`, `SOUL.md`, and `USER.md` at the root; keep task output out of the root.
- For reusable tooling, prefer Python or Node scripts. `pip install <pkg>` installs to the standard system site-packages (already writable) and is immediately importable — no `--user`, no `--target`, no `sys.path` tweaks. For persistent Node CLI tools, use `npm install -g ...`; keep plain `npm install` for project-local dependencies. Package downloads are cached on the runtime volume, so rebuilds are cheap; installed packages themselves do not persist across `docker compose build` — if you need a package long-term, add it to the image or a project-local venv.
