# Per-tool agent sub-modules # Each module handles rendering canonical agent.toml definitions # for a specific AI coding tool. # # Also provides the shared coding.agents.skills submodule that writes # ~/.agents/skills — the central skills directory used by Pi, OpenCode, etc. { config, lib, pkgs, ... }: let shared = import ./shared/shared-options.nix {inherit lib;}; cfg = config.coding.agents.skills; mkIf = lib.mkIf; in { imports = [ ./opencode.nix ./claude-code.nix ./pi.nix ]; options.coding.agents.skills = { agentsInput = shared.mkAgentsInputOption '' The `agents` flake input (your personal AGENTS repo). When set, skills are symlinked to ~/.agents/skills. ''; externalSkills = shared.externalSkillsOption; }; config = mkIf (cfg.agentsInput != null) { home.file.".agents/skills".source = cfg.agentsInput.lib.mkOpencodeSkills { inherit pkgs; customSkills = "${cfg.agentsInput}/skills"; externalSkills = shared.mapExternalSkills cfg.externalSkills; }; }; }