a150408a5a
CI / check (push) Has been cancelled
(Set up Serena IDE integration with a Nix language server and create a memory graph documenting package conventions, core structure, tech stack, and task completion workflows.)
2.3 KiB
2.3 KiB
nix-overlay — core
Nix flake overlay (numtide/blueprint-based) exposing extra packages for Nix/NixOS.
Repo: git+https://git.millerson.name/alex/millerson-overlay.nix.git
Source map
flake.nix— inputs + outputs; blueprint drives perSystem outputs; overlays/modules added manually on top.overlays/default.nix— binary-cache-friendly: maps blueprint's pre-builtpackagesunder namespacemillerson-nix-overlay.overlays/shared-nixpkgs.nix— buildspackages/tree against consumer'sfinalviamkPackagesFor; shares deps, cache only hits on matching nixpkgs rev.packages/<name>/default.nix+package.nix— every package follows this wrapper/derivation split. Seemem:conventionsfor patterns.packages/default/— meta-package; generates name\tdesc list fromperSystem.self, filteringpassthru.hideFromDocs.packages/flake-inputs/— dummy derivation referencing all flake inputs so they get cached.hideFromDocs = true.treefmt.toml— nixfmt for*.nix, flake.lock excluded.AGENTS.md/CLAUDE.md— agent workflow rules (beads tracking, mandatory skills, caveman comms).
Project-wide invariants
- All overlay packages live under the single attrset
millerson-nix-overlay(not top-level attrs). - Blueprint discovers packages from the git index, not the working dir: new
packages/<name>/must begit add-ed beforenix build .#<name>sees it. - Three nixpkgs inputs; some packages deliberately build against non-default ones. See pins in
mem:tech_stack. - Everything under
packages/usespkgs.callPackage ./package.nix { }wrapper pattern;default.nixreceives blueprint args (pkgs, perSystem, inputs, ...).
Task workflow (from AGENTS.md, enforced)
Runnable commands (build/format/update/bd/push): mem:suggested_commands. Exact done-checklist: mem:task_completion.
- ALL task tracking via
bd(beads):bd ready,bd update <id> --claim,bd close <id>. NEVER TodoWrite/markdown TODOs. bd primebefore starting work;bd rememberfor persistent knowledge (no MEMORY.md files).- Session not complete until
git pushsucceeds (bd dolt pushskipping with "No remote is configured" is expected, not a failure). - Commits use conventional-commit format.
- For nixpkgs/option lookups use the
nixskill; for flake/devShell ops thenix-flakesskill; comms in caveman mode.