{ description = "agent-environments example: one environment with instructions and skills"; inputs = { # In your own flake: github:/agent-environments agent-environments.url = "path:../.."; nixpkgs.follows = "agent-environments/nixpkgs"; }; outputs = { agent-environments, nixpkgs, ... }: let forAllSystems = nixpkgs.lib.genAttrs [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; inherit (agent-environments.lib) mkEnvironment mkSkill mkSkillModule; in { packages = forAllSystems ( system: let pkgs = nixpkgs.legacyPackages.${system}; ripgrep-search = mkSkill { inherit pkgs; name = "ripgrep-search"; src = ./skills/ripgrep-search; runtimeInputs = [ pkgs.ripgrep ]; }; # Depends on ripgrep-search: enabling code-review links both skills. code-review = mkSkill { inherit pkgs; name = "code-review"; src = ./skills/code-review; skills = [ ripgrep-search ]; }; env = mkEnvironment { inherit pkgs; modules = [ (mkSkillModule ripgrep-search) (mkSkillModule code-review) { claude.enable = true; codex.enable = true; modules.skills.code-review.enable = true; instructions.style.text = '' # Style - Prefer small, focused commits. - Explain *why* in commit messages. ''; claude.settings.includeCoAuthoredBy = false; codex.settings.approval_policy = "on-request"; launchers = { claude-basic.agent = "claude"; codex-basic.agent = "codex"; }; } ]; }; in { default = env.package; } ); }; }