diff --git a/scripts/devloop_test.sh b/scripts/devloop_test.sh index cfcea6c..d41890a 100755 --- a/scripts/devloop_test.sh +++ b/scripts/devloop_test.sh @@ -3156,6 +3156,16 @@ contains "$doctor_output" "$install_home/.agents/skills/devloop-spec" "doctor Co contains "$doctor_output" "$install_home/.claude/skills/devloop-spec" "doctor Claude skill" ok "doctor" +mkdir -p "$install_home/.codex/skills/devloop-spec" +ln -s "$install_home/.agents/skills/devloop-review" "$install_home/.codex/skills/devloop-review" +doctor_legacy_codex_output="$(HOME="$install_home" PATH="$bin_dir:$tool_bin:$fake_bin:$PATH" "$bin_dir/devloop" doctor 2>&1)" || fail "doctor rejected legacy Codex skill shadows" +contains "$doctor_legacy_codex_output" "[warn] legacy Codex skill shadow: $install_home/.codex/skills/devloop-spec" "doctor legacy Codex directory" +contains "$doctor_legacy_codex_output" "[warn] legacy Codex skill shadow: $install_home/.codex/skills/devloop-review" "doctor legacy Codex symlink" +contains "$doctor_legacy_codex_output" "canonical skill: $install_home/.agents/skills/devloop-spec" "doctor canonical Codex skill" +contains "$doctor_legacy_codex_output" "devloop doctor: ready" "doctor legacy Codex shadows remain non-blocking" +rm -rf "$install_home/.codex" +ok "doctor detects legacy Codex skill shadows" + no_gh_bin="$work/no-gh-bin" mkdir -p "$no_gh_bin" for tool in codex claude glow gum fzf tmux; do diff --git a/scripts/skill_helpers.sh b/scripts/skill_helpers.sh index da3627e..f34f737 100644 --- a/scripts/skill_helpers.sh +++ b/scripts/skill_helpers.sh @@ -214,6 +214,18 @@ EOF return "$status" } +devloop_doctor_legacy_codex_skills() { + local skills_dir="$HOME/.codex/skills" + local name dest canonical + + for name in devloop-spec devloop-review; do + dest="$skills_dir/$name" + if [ ! -e "$dest" ] && [ ! -L "$dest" ]; then continue; fi + canonical="$HOME/.agents/skills/$name" + printf '[warn] legacy Codex skill shadow: %s (remove it; canonical skill: %s)\n' "$dest" "$canonical" + done +} + devloop_doctor_skills_in_dir() { local root="$1" local skills_dir="$2" @@ -356,6 +368,7 @@ devloop_doctor() { devloop_doctor_command tmux || status=1 printf '\nSkills\n' devloop_doctor_skills "$root" || status=1 + devloop_doctor_legacy_codex_skills devloop_doctor_github if [ "$status" -eq 0 ]; then