|
| 1 | +# Repository Guidelines |
| 2 | + |
| 3 | +## Project Structure & Module Organization |
| 4 | +This repository is a personal environment/tooling monorepo managed with stow-style paths. |
| 5 | + |
| 6 | +- `config/common/`: shared dotfiles (`.config/nvim`, fish, git, tmux, etc.). |
| 7 | +- `config/macos/` and `config/linux/`: platform-specific overrides. |
| 8 | +- `bin/common/.local/bin/`: cross-platform helper scripts. |
| 9 | +- `bin/macos/.local/bin/` and `bin/linux/.local/bin/`: OS-specific utilities. |
| 10 | +- `install/`: install entrypoints and package setup (`arch/`, `macos/`, `devbox/`, `Makefile`). |
| 11 | +- `.github/workflows/`: CI for linters and secret scanning. |
| 12 | + |
| 13 | +## Build, Test, and Development Commands |
| 14 | +- `make -C install install`: run full platform install (`install/arch/install.sh` or `install/macos/install.sh`). |
| 15 | +- `make -C install packages`: install/update packages for current OS. |
| 16 | +- `make -C install stow`: apply symlinked config changes. |
| 17 | +- `make -C install shell-plugins`: refresh shell plugin dependencies. |
| 18 | + |
| 19 | +Useful local lint checks (matching CI intent): |
| 20 | +- `stylua --check config/common/.config/nvim` |
| 21 | +- `shfmt --simplify --indent 2 -d <files>` |
| 22 | +- `shellcheck <script.sh>` |
| 23 | + |
| 24 | +## Coding Style & Naming Conventions |
| 25 | +- Shell scripts should be POSIX/Bash-friendly, executable, and lint-clean. |
| 26 | +- Keep shell formatting consistent with CI (`shfmt` indent `2`, simplify enabled). |
| 27 | +- Lua style follows `.stylua.toml`; avoid ad-hoc style changes. |
| 28 | +- Prefer descriptive script names (`nodeswitch`, `update-shell-plugins`) over abbreviations. |
| 29 | + |
| 30 | +## Testing Guidelines |
| 31 | +There is no unit-test suite; quality is enforced mainly via linters and manual validation. |
| 32 | + |
| 33 | +- Run targeted linting for edited files before opening a PR. |
| 34 | +- Validate behavior changes by running the relevant command locally (for example, run updated scripts directly). |
| 35 | +- Ensure no secrets are introduced; CI runs `detect-secrets`. |
| 36 | + |
| 37 | +## Commit & Push Guidelines |
| 38 | +- Follow the existing commit style: short, imperative, scoped summaries (for example, `Add codex config`, `Fix gitignore`). |
| 39 | +- Keep commits focused; avoid bundling unrelated changes. |
| 40 | +- Before pushing, sanity-check changed paths and run targeted validation for touched files. |
| 41 | +- If a change is non-trivial, include brief rationale in the commit body (what changed and why). |
| 42 | + |
| 43 | +## Security & Configuration Tips |
| 44 | +- Never commit credentials, tokens, or machine-specific secrets. |
| 45 | +- Keep personal/local runtime state out of the repo unless intentionally tracked. |
0 commit comments