From 9092e6d18dd5fa1ed793bed0274ba20c770f5fb0 Mon Sep 17 00:00:00 2001 From: m3tm3re Date: Sat, 27 Dec 2025 10:16:52 +0100 Subject: [PATCH] +AGENTS.md --- AGENTS.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 AGENTS.md diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..67670b6 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,26 @@ +# Agent Guidelines for m3ta-nixpkgs + +## Build/Lint/Test Commands +- `nix flake check` - Validate flake and run checks +- `nix fmt` - Format all Nix files (uses nixpkgs-fmt) +- `nix build .#` - Build a specific package +- `nix flake show` - List all available outputs +- `statix check .` - Lint Nix files (run in `nix develop` shell) +- `deadnix .` - Find dead/unused Nix code (run in `nix develop` shell) + +## Code Style +- **Formatter**: Always run `nix fmt` before committing +- **Naming**: Package names use lowercase-hyphen (`my-package`), variables use camelCase +- **Imports**: Multi-line with trailing commas: `{ lib, stdenv, fetchFromGitHub, }:` +- **Modules**: Use `with lib; let cfg = config.namespace.module; in { ... }` pattern +- **Options**: Use `mkEnableOption` for enable flags, namespace under `m3ta.*` +- **Meta**: Always include description, homepage, license, platforms, mainProgram +- **Comments**: Explain "why" not "what"; document non-obvious logic + +## File Organization +- One package per directory under `pkgs/`, entry point is `default.nix` +- Register packages in `pkgs/default.nix` using `callPackage` +- Modules go in `modules/nixos/` or `modules/home-manager/` by category + +## Commit Format +`type: brief description` where type is: feat, fix, docs, style, refactor, chore