- 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)
1.5 KiB
1.5 KiB
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 packagehyprpaper-random/: Bash scriptlaunch-webapp/: Webapp wrappermem0/: Python package + customserver.pymsty-studio/: AppImage wrapperpomodoro-timer/: Timer utilitytuxedo-backlight/: Hardware controlzellij-ps/: Gitea-hosted package
WHERE TO LOOK
- Register new pkg: Add entry to
pkgs/default.nixattribute set - Modify pkg: Edit
pkgs/<name>/default.nix(version, hash, deps) - Check visibility:
nix flake show(usespkgs/default.nixviaoverlays/default.nix) - Add scripts: Place alongside
default.nixin 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
./filewithin derivations - Self-contained: Keep all package-specific files in their own directory
ANTI-PATTERNS
- Orphaned dirs: Creating
pkgs/new-pkg/without updatingpkgs/default.nix - Direct flake imports: Importing packages in
flake.nixinstead of through the registry - Implicit deps: Not declaring dependencies in the package function arguments
- Non-derivations: Placing NixOS/HM modules here (use
modules/instead)