Files
nixpkgs/pkgs/AGENTS.md
m3tm3re 824ad97ef9 docs: add hierarchical AGENTS.md knowledge base
- 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)
2025-12-30 15:02:58 +01:00

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 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)