diff --git a/dotfiles/codex/.gitignore b/dotfiles/codex/.gitignore index 5bb2bcad..88eda80a 100644 --- a/dotfiles/codex/.gitignore +++ b/dotfiles/codex/.gitignore @@ -2,3 +2,4 @@ !.gitignore !AGENTS.md !config.toml +!skills diff --git a/dotfiles/codex/skills b/dotfiles/codex/skills new file mode 120000 index 00000000..a769d4bd --- /dev/null +++ b/dotfiles/codex/skills @@ -0,0 +1 @@ +../agents/skills \ No newline at end of file diff --git a/dotfiles/lib/bin/setup_codex_skills b/dotfiles/lib/bin/setup_codex_skills deleted file mode 100755 index 3fb2f2a1..00000000 --- a/dotfiles/lib/bin/setup_codex_skills +++ /dev/null @@ -1,57 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -tracked_skills_dir="${1:?usage: setup_codex_skills TRACKED_SKILLS_DIR [RUNTIME_SKILLS_DIR] [CODEX_SKILLS_LINK]}" -runtime_skills_dir="${2:-${XDG_DATA_HOME:-$HOME/.local/share}/codex/skills}" -codex_skills_link="${3:-$HOME/.codex/skills}" - -mkdir -p "$runtime_skills_dir" -mkdir -p "$(dirname "$codex_skills_link")" - -# Preserve generated Codex skill bundles while moving them out of the git worktree. -for generated_name in .system codex-primary-runtime; do - generated_src="$tracked_skills_dir/$generated_name" - generated_dest="$runtime_skills_dir/$generated_name" - if [[ -e "$generated_src" && ! -e "$generated_dest" ]]; then - mv "$generated_src" "$generated_dest" - fi -done - -if [[ -L "$codex_skills_link" ]]; then - current_target="$(readlink "$codex_skills_link")" - if [[ "$current_target" != "$runtime_skills_dir" ]]; then - rm -f "$codex_skills_link" - fi -elif [[ -e "$codex_skills_link" ]]; then - echo "Skipping $codex_skills_link because it exists and is not a symlink" >&2 - codex_skills_link="" -fi - -if [[ -n "$codex_skills_link" && ! -e "$codex_skills_link" ]]; then - ln -s "$runtime_skills_dir" "$codex_skills_link" -fi - -for skill_src in "$tracked_skills_dir"/*; do - [[ -e "$skill_src" || -L "$skill_src" ]] || continue - - skill_name="$(basename "$skill_src")" - case "$skill_name" in - .system|codex-primary-runtime) - continue - ;; - esac - - skill_dest="$runtime_skills_dir/$skill_name" - if [[ -L "$skill_dest" ]]; then - current_target="$(readlink "$skill_dest")" - if [[ "$current_target" == "$skill_src" ]]; then - continue - fi - rm -f "$skill_dest" - elif [[ -e "$skill_dest" ]]; then - echo "Skipping skill $skill_name because $skill_dest already exists and is not a symlink" >&2 - continue - fi - - ln -s "$skill_src" "$skill_dest" -done diff --git a/nix-darwin/home/common.nix b/nix-darwin/home/common.nix index 214c369a..6c9bb177 100644 --- a/nix-darwin/home/common.nix +++ b/nix-darwin/home/common.nix @@ -109,10 +109,6 @@ in { fi ''; - home.activation.linkCodexSkills = lib.hm.dag.entryAfter ["writeBoundary"] '' - ${pkgs.bash}/bin/bash "${libDir}/bin/setup_codex_skills" "${dotfilesDir}/agents/skills" - ''; - home.sessionPath = [ "$HOME/.cargo/bin" "${libDir}/bin" diff --git a/nixos/dotfiles-links.nix b/nixos/dotfiles-links.nix index 9122f43a..bb1d1805 100644 --- a/nixos/dotfiles-links.nix +++ b/nixos/dotfiles-links.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: +{ config, lib, ... }: let # Replicate the useful part of rcm/rcup: # - dotfiles live in ~/dotfiles/dotfiles (no leading dots in the repo) @@ -71,7 +71,4 @@ in fi ''; - home.activation.linkCodexSkills = lib.hm.dag.entryAfter ["writeBoundary"] '' - ${pkgs.bash}/bin/bash "${worktreeDotfiles}/lib/bin/setup_codex_skills" "${worktreeDotfiles}/agents/skills" - ''; }