From 920517e6238e016884626dab6b83d498a8725512 Mon Sep 17 00:00:00 2001 From: alexion Date: Thu, 30 Jul 2026 00:28:43 -0400 Subject: [PATCH] Add project skills to dev shell --- .envrc | 1 + .gitignore | 3 ++- AGENTS.md | 4 ++-- flake.lock | 45 ++++++++++++++++++++++++++++++++++++++++++++- flake.nix | 21 ++++++++++++++++----- 5 files changed, 65 insertions(+), 9 deletions(-) create mode 100644 .envrc diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use flake diff --git a/.gitignore b/.gitignore index 9e32bd4..c5315be 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ tests/.reports/ # BEGIN mkSkillsShellHook # Generated by mkSkillsShellHook. Nix-delivered skill symlinks, kept out of git. +.claude/skills +.agents/skills/gitea-axi .agents/skills/benchmark-skill # END mkSkillsShellHook - diff --git a/AGENTS.md b/AGENTS.md index 7c6d492..0da26e4 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -16,5 +16,5 @@ The domain glossary lives at `$(xdg-user-dir DOCUMENTS)/ai-artifacts/projects/sk ## Gotchas -- The development environment does not provide `python3` by default. - Use available project tools instead of assuming Python is installed. +- `python3` is supplied by the default Nix dev shell, not the ambient environment. + Enter `nix develop` before running Python-based project tools. diff --git a/flake.lock b/flake.lock index 098cb45..a675d42 100644 --- a/flake.lock +++ b/flake.lock @@ -18,7 +18,49 @@ "type": "github" } }, + "gitea-axi": { + "inputs": { + "home-manager": "home-manager", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1785340481, + "narHash": "sha256-GSxdQ7w8yYfZnfkXUuZ2fYIKibe9ZU8xDGyqpeTb2tE=", + "ref": "refs/heads/main", + "rev": "627fc9a32bb80d97923540fc0d3e9661961462ba", + "revCount": 83, + "type": "git", + "url": "https://git.alexion.dev/alexion/gitea-axi" + }, + "original": { + "type": "git", + "url": "https://git.alexion.dev/alexion/gitea-axi" + } + }, "home-manager": { + "inputs": { + "nixpkgs": [ + "gitea-axi", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1784588016, + "narHash": "sha256-ouZe80aWEhMLVMkqICFDN+JUw+0FJtCr/bh+hHtRtMg=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "deeb6b7eb7e0c44ae1819c051ce175bd92a85100", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_2": { "inputs": { "nixpkgs": [ "nixpkgs" @@ -57,7 +99,8 @@ "root": { "inputs": { "flake-utils": "flake-utils", - "home-manager": "home-manager", + "gitea-axi": "gitea-axi", + "home-manager": "home-manager_2", "nixpkgs": "nixpkgs" } }, diff --git a/flake.nix b/flake.nix index a0ffa42..30396f1 100644 --- a/flake.nix +++ b/flake.nix @@ -4,6 +4,11 @@ inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; inputs.flake-utils.url = "github:numtide/flake-utils"; + inputs.gitea-axi = { + url = "git+https://git.alexion.dev/alexion/gitea-axi"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + # Present only so `nix flake check` can evaluate `homeModules.default` against # real home-manager (the home-manager-module check). Its nixpkgs follows this # flake's, so the module is checked against the same nixpkgs-and-home-manager @@ -14,7 +19,7 @@ inputs.home-manager.inputs.nixpkgs.follows = "nixpkgs"; outputs = - { self, nixpkgs, flake-utils, home-manager }: + { self, nixpkgs, flake-utils, home-manager, gitea-axi }: let mkSkill = import ./lib/mk-skill.nix; mkSkillsShellHook = import ./lib/mk-skills-shell-hook.nix; @@ -94,12 +99,18 @@ }; # A working shell for developing skills in this repo. - # python3 runs the benchmark skill's deterministic core. - # The benchmark-skill is placed into ./.agents/skills/ on entry, with + # Python runs the benchmark core, while gitea-axi backs its project skill. + # Both project skills are placed into ./.agents/skills/ on entry, with # ./.claude/skills as a compatibility symlink. devShells.default = pkgs.mkShell { - packages = [ pkgs.python3 ]; - shellHook = mkSkillsShellHook [ (skillPackages pkgs).benchmark-skill ]; + packages = [ + pkgs.python3 + gitea-axi.packages.${system}.gitea-axi + ]; + shellHook = mkSkillsShellHook [ + gitea-axi.packages.${system}.gitea-axi-skill + (skillPackages pkgs).benchmark-skill + ]; }; } );