5.0.1
5.0.1のリリースノート。
リリース日: 2026-08-04
バグ修正
setup-doc-skill.shが、グローバルのシンボリックリンクが既に正しい場合に tracked skill をスキップしてしまう問題を修正しました。冪等性のチェックが、既存のシンボリックリンクに格納された文字列そのものと、MAIN_PROJECT_DIRから組み立てたリンク先とを比較していました。MAIN_PROJECT_DIRはgit worktree listに由来するため常に物理パスです。そのため、プロジェクトやその親ディレクトリがシンボリックリンクの先にある場合 — シンボリックリンクされた$HOME、シンボリックリンクされたチェックアウト、あるいは macOS の$TMPDIR(/→var /)— 両者は同じディレクトリを指すのに文字列としては一致せず、スクリプトは自分自身が作った正しいリンクを他者のものと誤認し、何もしない代わりにprivate/ var already links to ...という誤った警告を出していました。移植性のあるphysical_dirヘルパー(cd+pwd -P。素の macOS にはrealpath(1)がなく、BSD のreadlinkには-fがないため)を使い、リンクが実際に到達する先を比較するようにしました。リンク切れの置き換え処理と D4 safe-link ポリシーは変更なく、スクリプトが所有していないものを横取りしたり削除したりすることはありません (b6a226c, 76a39c0)同じヘルパーを、解決できないディレクトリに対して堅牢にしました。解決に失敗した場合は入力値をそのまま返します。読み取り権限のないディレクトリでは
cdが失敗してサブシェルが空文字列を返すため、異なる 2 つの読み取り不能なパスがどちらも""になって一致してしまい、本来作成すべきリンクを黙ってスキップする可能性がありました。cdの permission denied の出力も抑制しています (76a39c0)
その他の変更
意図的に作ったシンボリックリンク経由でスキルディレクトリに到達するリグレッションテストを追加し、上記の不具合が Linux でも再現するようにしました。元の不具合は macOS だけが
$TMPDIRをシンボリックリンクにしているため CI からは見えていませんでした。このテストは修正前のスクリプトに対して失敗することを確認済みです (b6a226c)