dotfiles/AGENTS.md

39 lines
2.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AGENTS.md — Agentic Coding Guide for Dotfiles
**🚨 ABSOLUTE AGENT SAFETY RULES — DO NOT IGNORE 🚨**
- Agents MUST NEVER run any scripts in this repo automatically.
- Agents MUST NEVER modify, symlink, or touch files outside of the repo root or its subdirectories.
- NO file operations or script executions unless the user gives direct, explicit permission for each action.
- All actions must be idempotent, explicit, and user-approved.
- Violating these rules risks breaking the users system and is strictly forbidden.
## Build/Lint/Test
- Main entrypoint: `./setup.sh` (runs all `modules/*.sh` in order)
- To run a single module: `bash modules/XX-name.sh`
- No traditional build/lint/test; test by running setup and verifying symlinks/configs
- NEVER run the scripts on your own, ALWAYS ask for permission
## Code Style & Conventions
- Bash scripts only; use `paru` for package management (never `pacman`)
- Add new packages to the relevant `modules/XX-*.sh` script
- Place dotfiles in repo root or `.config/` as appropriate
- Use `$HOME` and relative paths; never hardcode absolute paths
- Prefer arrays for package lists; always quote variables
- Use `set -e` for error handling
- Scripts must be modular, readable, commented, and extensible
- Naming: `XX-feature.sh` for modules, lowercase, hyphen-separated
- App configs (Hyprland, Waybar, etc.) go in `.config/` and use includes/fragments if possible
## Device Profiles
- Support device types via `DOTFILES_DEVICE=laptop|desktop`; use device-specific config fragments and conditional symlinking
## Copilot/AI Rules
- See `.github/copilot-instructions.md` for full conventions
- All changes must be modular, idempotent, and version-controlled
## Commit Workflow
- After every change, commit with a clear, descriptive message explaining the purpose (not just the file or function name)
- Example: `git add <changed-files> && git commit -m "fix: correct Waybar config for desktop profile"`
- Do not use generic messages like "Update" or "Fix" without context