PR 技能自家三支腳本的路徑補上外掛目錄名,不再解到不存在的位置 #35

Merged
admin merged 1 commits from fix/pr-skill-tool-paths-resolve-to-plugin-root into develop 2026-09-04 02:46:53 +00:00
Member

摘要

  • 需求描述:jsc-git:pr 技能本文把自家三支腳本寫成不帶前綴的 tools/…。技能的基底目錄是 skills/pr/,照字面解出來是 skills/pr/tools/base-branch.sh——那個路徑不存在,結束碼 127。三支腳本實際在外掛根目錄的 tools/ 底下。這張 PR 把十三處路徑補上外掛目錄名,並寫明每一條路徑相對於誰解。
  • 計畫名稱:無
  • 計畫頁:無
  • 分析頁:無

變更內容

檔案 為什麼改
skills/pr/SKILL.md base-branch.sh 六處、slugify.sh 五處、pick-type.sh 兩處,共十三處補上 jsc-git/ 前綴,含 frontmatter 的 description 那一處;開頭新增一段講明路徑相對於誰解,以及這個 127 為什麼不只是跑不動
.claude-plugin/plugin.json、.codex-plugin/plugin.json、plugin.json 三份 manifest 版號 0.1.5 升到 0.1.6

為什麼是補前綴,不是改成別的寫法

同一份文件引用別的外掛時,本來就寫 jsc-gitea/tools/gitea.sh 與 jsc-hooks/tools/report-status.sh,兄弟技能也一律是 jsc-{domain}/tools/…。只有自家那三支掉了前綴,所以這不是要發明新寫法,是把漏掉的一致性補回去。

這個坑比看起來嚴重

127 本身三十秒就繞得過去,真正的風險在下一步。技能第 4 步明寫「never hand-pick a base」,理由是階梯規則只有一份正本、不准各自解讀。而跑不動推導腳本的代理人,離「自己挑一個基底分支」只差一步。

那一步跨過去的話,PR 會照樣開出來,標題與描述都正常,只是接在錯的階梯上。沒有錯誤訊息,沒有失敗結束碼,要等有人回頭看分支圖才看得出來。

一個路徑打錯,變成一張開在錯基底的 PR——中間隔的是一個「腳本壞了我自己想辦法」的判斷。所以開頭那一段不只寫「路徑相對於誰解」,也寫明這個失敗會往哪裡跑。

測試結果

  • 補齊後全文再掃一次,不帶前綴的 tools/base-branch.sh、tools/pick-type.sh、tools/slugify.sh 一處都不剩。
  • 三支腳本確認都在外掛根目錄的 tools/ 底下,skills/pr/ 底下只有 SKILL.md 一個檔案。
  • lint-scripts.sh、check-behaviors.sh、ste100-lint.sh 三支都回結束碼 0。
  • description 補了前綴之後 535 字元,沒有超標。

順帶記一筆

這一類缺失現在沒有任何機械檢核擋得住——技能本文裡的腳本路徑對不對,要等有人真的照著跑才知道。skill-check 的機械檢核那一組加一項「本文引用的腳本路徑實際存不存在」會擋掉整類,不只這一支。這一張沒有順便做,因為那要動 jsc-meta,值得單獨判一次。

前置 Push Request

  • 無
## 摘要 - 需求描述:`jsc-git:pr` 技能本文把自家三支腳本寫成不帶前綴的 `tools/…`。技能的基底目錄是 `skills/pr/`,照字面解出來是 `skills/pr/tools/base-branch.sh`——那個路徑不存在,結束碼 127。三支腳本實際在外掛根目錄的 `tools/` 底下。這張 PR 把十三處路徑補上外掛目錄名,並寫明每一條路徑相對於誰解。 - 計畫名稱:無 - 計畫頁:無 - 分析頁:無 ## 變更內容 | 檔案 | 為什麼改 | | --- | --- | | `skills/pr/SKILL.md` | `base-branch.sh` 六處、`slugify.sh` 五處、`pick-type.sh` 兩處,共十三處補上 `jsc-git/` 前綴,含 frontmatter 的 `description` 那一處;開頭新增一段講明路徑相對於誰解,以及這個 127 為什麼不只是跑不動 | | `.claude-plugin/plugin.json`、`.codex-plugin/plugin.json`、`plugin.json` | 三份 manifest 版號 0.1.5 升到 0.1.6 | ## 為什麼是補前綴,不是改成別的寫法 同一份文件引用別的外掛時,本來就寫 `jsc-gitea/tools/gitea.sh` 與 `jsc-hooks/tools/report-status.sh`,兄弟技能也一律是 `jsc-{domain}/tools/…`。**只有自家那三支掉了前綴**,所以這不是要發明新寫法,是把漏掉的一致性補回去。 ## 這個坑比看起來嚴重 127 本身三十秒就繞得過去,真正的風險在下一步。技能第 4 步明寫「never hand-pick a base」,理由是階梯規則只有一份正本、不准各自解讀。而**跑不動推導腳本的代理人,離「自己挑一個基底分支」只差一步**。 那一步跨過去的話,PR 會照樣開出來,標題與描述都正常,只是接在錯的階梯上。沒有錯誤訊息,沒有失敗結束碼,要等有人回頭看分支圖才看得出來。 一個路徑打錯,變成一張開在錯基底的 PR——中間隔的是一個「腳本壞了我自己想辦法」的判斷。所以開頭那一段不只寫「路徑相對於誰解」,也寫明這個失敗會往哪裡跑。 ## 測試結果 - 補齊後全文再掃一次,不帶前綴的 `tools/base-branch.sh`、`tools/pick-type.sh`、`tools/slugify.sh` 一處都不剩。 - 三支腳本確認都在外掛根目錄的 `tools/` 底下,`skills/pr/` 底下只有 `SKILL.md` 一個檔案。 - `lint-scripts.sh`、`check-behaviors.sh`、`ste100-lint.sh` 三支都回結束碼 0。 - `description` 補了前綴之後 535 字元,沒有超標。 ## 順帶記一筆 這一類缺失現在沒有任何機械檢核擋得住——技能本文裡的腳本路徑對不對,要等有人真的照著跑才知道。`skill-check` 的機械檢核那一組加一項「本文引用的腳本路徑實際存不存在」會擋掉整類,不只這一支。這一張沒有順便做,因為那要動 `jsc-meta`,值得單獨判一次。 ## 前置 Push Request - 無
jiantw83 added 1 commit 2026-09-04 02:44:24 +00:00
base-branch.sh、pick-type.sh、slugify.sh 三支在外掛根目錄的 tools/ 底下,
但技能本文寫成不帶前綴的 tools/…,照字面解會落到 skills/pr/tools/,那個
路徑不存在、結束碼 127。同一份文件引用別的外掛時本來就寫 jsc-gitea/tools/
與 jsc-hooks/tools/,只有自家的掉了前綴,十三處全部補齊。

這個坑比看起來嚴重。第 4 步明寫不准自己挑基底分支,而跑不動推導腳本的
代理人離「自己挑一個」只差一步——路徑打錯就變成 PR 開在錯的階梯上,而且
PR 會照樣開出來,不會有任何錯誤。開頭補一段講明每一條腳本路徑相對於誰解,
以及這個 127 為什麼不只是跑不動而已。

三份 manifest 版號 0.1.5 升到 0.1.6。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
admin merged commit eedd2255b4 into develop 2026-09-04 02:46:53 +00:00
admin deleted branch fix/pr-skill-tool-paths-resolve-to-plugin-root 2026-09-04 02:46:53 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: plugins/git#35