fix/pr-skill-tool-paths-resolve-to-plugin-root
develop
references/behaviors.md
pr
skills/pr/SKILL.md
關鍵步驟與外部呼叫那兩欄,正是別人拿來確認一支技能會呼叫誰的地方。技能本文改對了、行為清單還留著舊寫法,等於兩份文件對同一件事給出兩種答案,而讀行為清單的人不會知道自己讀到的是舊的。
原本那一句把不帶外掛目錄名的錯誤寫法原樣寫出來當例子,於是那一行自己就變成一處待改——說明文字跟真的路徑長得一模一樣,機械檢核分不出來。
改成描述後果而不照抄寫法,順便講得更準:省掉外掛目錄名之後,路徑會相對於當下的工作目錄解,可能解到自己這個存取庫裡對的那一支、可能解到別的 domain 底下另一支,也可能什麼都解不到。中間那一種最糟,它會跑起來,跑的是另一支腳本。
jsc-meta 那邊新加的腳本路徑檢核,上線第一次跑就指出來的。它掃 skills/*/SKILL.md 與 references/*.md,解析每一條腳本路徑——技能本文那一半已經改好、行為清單那一半還沒,一跑就分得出來。
jsc-meta
skills/*/SKILL.md
references/*.md
check-skill-paths.sh
lint-scripts.sh
check-behaviors.sh
ste100-lint.sh
上一筆只改了技能本文,行為清單漏掉。新的路徑檢核腳本一跑就指出來——關鍵 步驟與外部呼叫兩欄還留著八處不帶前綴的寫法,而那兩欄正是別人拿來確認這支 技能會呼叫誰的地方。 順手改掉技能本文開頭那一句的舉例方式。原本把不帶前綴的錯誤寫法原樣寫出來 當例子,那一行自己就會被路徑檢核當成一處待改。改成描述後果、不照抄那個 寫法,順便講得更準:省掉外掛目錄名之後,路徑會相對於當下的工作目錄解, 可能解到自己這個存取庫裡對的那一支、可能解到別的 domain 底下另一支,也可能 什麼都解不到。中間那一種最糟,它會跑起來,跑的是另一支腳本。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
上一輪的行為清單修正沒趕上合併,這一筆帶著它重新送出。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
No dependencies set.
The note is not visible to the blocked user.
摘要
變更內容
references/behaviors.mdpr那一節的關鍵步驟與外部呼叫兩欄,八處腳本路徑補上外掛目錄名skills/pr/SKILL.md為什麼行為清單漏不得
關鍵步驟與外部呼叫那兩欄,正是別人拿來確認一支技能會呼叫誰的地方。技能本文改對了、行為清單還留著舊寫法,等於兩份文件對同一件事給出兩種答案,而讀行為清單的人不會知道自己讀到的是舊的。
舉例方式為什麼要改
原本那一句把不帶外掛目錄名的錯誤寫法原樣寫出來當例子,於是那一行自己就變成一處待改——說明文字跟真的路徑長得一模一樣,機械檢核分不出來。
改成描述後果而不照抄寫法,順便講得更準:省掉外掛目錄名之後,路徑會相對於當下的工作目錄解,可能解到自己這個存取庫裡對的那一支、可能解到別的 domain 底下另一支,也可能什麼都解不到。中間那一種最糟,它會跑起來,跑的是另一支腳本。
這一筆是怎麼被發現的
jsc-meta那邊新加的腳本路徑檢核,上線第一次跑就指出來的。它掃skills/*/SKILL.md與references/*.md,解析每一條腳本路徑——技能本文那一半已經改好、行為清單那一半還沒,一跑就分得出來。測試結果
check-skill-paths.sh對這個存取庫:0 缺失、0 提示。改之前是 8 條提示。lint-scripts.sh、check-behaviors.sh、ste100-lint.sh三支都回結束碼 0。前置 Push Request