- Update root AGENTS.md with regenerative content (144 lines, telegraphic) - Add pkgs/AGENTS.md for package registry conventions (33 lines) - Add docs/AGENTS.md for documentation structure (34 lines) - All files follow telegraphic style, no redundancy with parent - Preserves existing modules/home-manager/AGENTS.md Hierarchy: ./AGENTS.md (root) ├── pkgs/AGENTS.md ├── docs/AGENTS.md └── modules/home-manager/AGENTS.md (existing)
34 lines
1.5 KiB
Markdown
34 lines
1.5 KiB
Markdown
# pkgs/ AGENTS.md
|
|
|
|
## OVERVIEW
|
|
Custom package registry using `callPackage` pattern for flake-wide availability.
|
|
|
|
## STRUCTURE
|
|
- `default.nix`: Central registry (entry point for overlays)
|
|
- `code2prompt/`: Rust package
|
|
- `hyprpaper-random/`: Bash script
|
|
- `launch-webapp/`: Webapp wrapper
|
|
- `mem0/`: Python package + custom `server.py`
|
|
- `msty-studio/`: AppImage wrapper
|
|
- `pomodoro-timer/`: Timer utility
|
|
- `tuxedo-backlight/`: Hardware control
|
|
- `zellij-ps/`: Gitea-hosted package
|
|
|
|
## WHERE TO LOOK
|
|
- **Register new pkg**: Add entry to `pkgs/default.nix` attribute set
|
|
- **Modify pkg**: Edit `pkgs/<name>/default.nix` (version, hash, deps)
|
|
- **Check visibility**: `nix flake show` (uses `pkgs/default.nix` via `overlays/default.nix`)
|
|
- **Add scripts**: Place alongside `default.nix` in package folder (e.g., `mem0/server.py`)
|
|
|
|
## CONVENTIONS
|
|
- **CallPackage**: Always use `pkgs.callPackage ./dir {}` in registry
|
|
- **Dir == Attr**: Package directory name MUST match its registry attribute
|
|
- **Path literals**: Reference local assets using `./file` within derivations
|
|
- **Self-contained**: Keep all package-specific files in their own directory
|
|
|
|
## ANTI-PATTERNS
|
|
- **Orphaned dirs**: Creating `pkgs/new-pkg/` without updating `pkgs/default.nix`
|
|
- **Direct flake imports**: Importing packages in `flake.nix` instead of through the registry
|
|
- **Implicit deps**: Not declaring dependencies in the package function arguments
|
|
- **Non-derivations**: Placing NixOS/HM modules here (use `modules/` instead)
|