|
| 1 | +# Workspace schema |
| 2 | + |
| 3 | +This document defines the `.devman/devman.toml` schema used by devman. |
| 4 | + |
| 5 | +## Overview |
| 6 | + |
| 7 | +- **Required** fields are listed explicitly. |
| 8 | +- All paths are relative to the `.devman/` directory unless noted. |
| 9 | +- TOML overrides `.env` values if both are present. |
| 10 | + |
| 11 | +## Schema |
| 12 | + |
| 13 | +```toml |
| 14 | +[workspace] |
| 15 | +name = "my-app" # required |
| 16 | +tags = ["api", "web"] # optional |
| 17 | +group = "client-x" # optional |
| 18 | + |
| 19 | +[tmuxp] |
| 20 | +workspace = "workspace.tmuxp.yaml" # optional |
| 21 | +session_name = "my-app" # optional |
| 22 | + |
| 23 | +[claude_code] |
| 24 | +interaction = "interaction.md" # optional |
| 25 | +emit_project_config = false # optional |
| 26 | + |
| 27 | +[nvim] |
| 28 | +init = "nvim/init.lua" # optional |
| 29 | +listen = ".devman/.state/nvim.sock" # optional (relative to workspace root) |
| 30 | +sessions_dir = "sessions" # optional |
| 31 | +default_session = "home.vim" # optional |
| 32 | +``` |
| 33 | + |
| 34 | +## Precedence rules |
| 35 | + |
| 36 | +1. `.devman/devman.toml` is the primary configuration source. |
| 37 | +2. `.devman/.env` may supply environment toggles for: |
| 38 | + - `DEVMAN_TMUXP_WORKSPACE` |
| 39 | + - `DEVMAN_SESSION_NAME` |
| 40 | +3. If TOML fields are present they always override `.env` values. |
| 41 | + |
| 42 | +## Required files |
| 43 | + |
| 44 | +A workspace is valid if `.devman/` exists. The following files are optional but |
| 45 | +recommended for full functionality: |
| 46 | + |
| 47 | +- `.devman/devman.toml` |
| 48 | +- `.devman/interaction.md` |
| 49 | +- `.devman/workspace.tmuxp.yaml` |
| 50 | +- `.devman/nvim/init.lua` |
| 51 | +- `.devman/sessions/home.vim` |
0 commit comments