diff --git a/AGENTS.md b/AGENTS.md index 81b89f5..b9040a7 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -14,17 +14,17 @@ . ├── source.py # decman 主配置入口 ├── modules/ -│ ├── base.py # 基础模块(系统包 + 现代 CLI 工具 + 配置文件) -│ ├── dev.py # 开发模块(语言运行时 + 编辑器 + 工具链) +│ ├── base.py # 基础模块(系统包 + CLI 工具 + dotfiles) +│ ├── dev.py # 开发模块(语言运行时 + LSP + 工具链) │ ├── docker.py # Docker 模块(packages + systemd units) -│ ├── locale.py # locale 模块(files + on_change hook) +│ ├── locale.py # locale 模块(on_change hook 示例) │ └── zsh.py # Zsh 模块(shell + 插件 + 自动 chsh) -├── system/etc/ # 系统配置文件源 → 部署到 /etc/ -├── home/ # 用户配置文件源 → 部署到 ~/ +├── system/etc/ # 系统配置文件源 → /etc/ +├── home/ # 用户配置文件源 → ~/(必须指定 owner) ├── scripts/ -│ ├── install.sh # 引导脚本(git → decman → 首次 sync) -│ └── wsl-init.sh # WSL 首次初始化(创建用户) -└── pyproject.toml # 开发依赖(decman + 插件,仅用于类型检查) +│ ├── install.sh # 引导脚本(curl | bash) +│ └── wsl-init.sh # WSL 首次初始化 +└── pyproject.toml # 开发依赖(decman 插件,仅类型检查) ``` ## 命令 @@ -121,6 +121,19 @@ class DockerModule(Module): - 示例:`feat(docker): 添加 Docker 支持并重排声明顺序` - 分支:直接在 `main` 上工作 +## 关键依赖关系 + +`.zshrc` 别名与包的绑定(修改前务必检查): + +| 别名 | 依赖包 | 位置 | +|------|--------|------| +| `rm="gomi"` | `gomi-bin` (AUR) | `base.py` | +| `cat="bat"` | `bat` | `base.py` | +| `ls="eza"` | `eza` | `base.py` | +| `vi="nvim"` | `neovim` | `dev.py` | +| `lg="lazygit"` | `lazygit` | `dev.py` | +| `x="ouch decompress"` | `ouch` | `base.py` | + ## Agent 须知 1. **decman 是唯一真相**:不要手动装包,加到 `source.py` 或模块里,跑 `sudo decman`。 @@ -131,9 +144,9 @@ class DockerModule(Module): 4. **用户配置**:源文件放 `home/`,必须指定 `owner=USERNAME`。 -5. **Runs as root**:`sudo decman` 以 root 执行 `source.py`。`SUDO_USER` 是调用 sudo 的原始用户名,不要 fallback。 +5. **环境变量**:`sudo decman` 以 root 执行,`SUDO_USER` 是原始用户名。配置内不要 fallback 到 `os.getenv("USER")`。 -6. **开发环境**:`pyproject.toml` + `uv sync` 管理开发依赖(decman、decman-pacman、decman-systemd),仅用于 IDE 类型检查,不影响运行时。 +6. **开发依赖**:`pyproject.toml` 仅用 uv 管理类型检查依赖,不影响运行时。修改依赖后运行 `uv sync`。 7. **幂等性**:所有脚本和配置必须可安全重复执行。