develop
master
jsc-cli
tools/config-spec.tsv
JSC_PR_WATCH_INTERVAL
tools/deploy.sh
set
jsc-gitea/tools/pr-watch.sh
doctor
plugin update
marketplace upgrade
marketplace.json
plugin add
update
plugin.json
.claude-plugin/plugin.json
.codex-plugin/plugin.json
jsc-hooks/hooks/version-guard.sh
version-guard.sh
jsc-cli:deploy
jsc-git
jsc-git/tools/base-branch.sh --derive
jsc-hooks
jsc-sdlc
JSC_WP_GATE=off
JSC_PR_WATCH_INTERVAL=15
git log --oneline origin/master..origin/develop
plugins/cli#23
#22
config-spec
plugins/cli#21
git diff --stat origin/master origin/develop
#23
deploy.sh
#21
What:deploy_codex 的 update 分支在 marketplace upgrade 之後,補上逐網域的 plugin add,與 install 分支一致。 Why:codex 沒有 plugin update 子指令,只有 add、list、marketplace、remove。 marketplace upgrade 只重抓 marketplace 快照,而 jsc 的 marketplace.json 只列各 網域的 git URL、不含版本,內容不會變,codex 一律回「already up to date」並結束碼 0。 已安裝外掛的版本在 plugin add 當下決定,快取不會被連帶重抓。結果是十個網域裡八個 版本完全沒動,指令卻全部成功——只看結束碼會判定成功,是最難察覺的那種失敗。 實機驗證過:更新前 review 是 0.0.2,跑完 marketplace upgrade 仍是 0.0.2。 How:update 分支照 install 的寫法逐網域跑 plugin add。實測 codex 的 add 會就地 升級到快照裡的最新版(review 0.0.2 升到 0.0.5),不需要先 remove。同時在函式上方 寫明這個限制與理由,避免後人再把那一行當成多餘的重複而刪掉。 Who:跨 CLI 技能組批次部署。
What:三份 manifest 由 0.1.5 升到 0.1.6。 Why:codex 更新路徑的修正要能被 version-guard.sh 判定為落後,使用者才會收到更新 提示。不升版的話,帶著壞掉更新路徑的舊版會一直留在各 CLI 上。 How:以 jsc-meta 的 sync-skill-manifest.sh 統一 bump,三份同步成同一個值。 Who:跨 CLI 技能組批次部署。
Reviewed-on: #21 Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
What:`tools/config-spec.tsv` 新增一列 `JSC_PR_WATCH_INTERVAL`:型別 `env`、全域、非必填、預設 `60`、檢查方式 `set`、缺少時 `ask`,說明寫明它是 `pr-watch.sh` 輪詢 PR 狀態的間隔秒數,實作在 `jsc-gitea/tools/pr-watch.sh`。 Why:設定規格表是 jsc 環境變數的清單正本,`jsc-cli` 的部署與體檢都讀它。新變數沒登錄進來,體檢就看不到它,使用者也無從得知有這個旋鈕可以調。 How:只加一列,排在同為 `jsc-hooks` 系列旋鈕的 `JSC_VERSION_TTL` 之後,欄位順序與既有各列相同;說明點名實作位置,讀表的人才知道去哪裡查行為。 Who:`jsc-cli:deploy` 與環境體檢,以及要調整盯 PR 頻率的使用者。
What:`plugin.json`、`.claude-plugin/plugin.json`、`.codex-plugin/plugin.json` 的 `version` 由 0.1.6 改為 0.1.7。 Why:設定規格表新增一個環境變數,讀表的部署與體檢行為跟著變,版本要往上走,各 CLI 才知道要更新。 How:三份只改 `version` 一個欄位,其餘內容不動,三份保持同一版號。 Who:`jsc-cli` 外掛的套件描述檔。
Reviewed-on: #22
No dependencies set.
The note is not visible to the blocked user.
摘要
jsc-cli0.1.7 從develop放行到master。主要內容是使用者 15 條規則第一群「SDLC 執行流程」六條在本存取庫的落實:tools/config-spec.tsv登錄JSC_PR_WATCH_INTERVAL。本批同時把還沒放行過的 0.1.6 一起帶出去——tools/deploy.sh的 codex 更新修正,develop上比master多的那一段就包含它。變更內容
tools/config-spec.tsvJSC_PR_WATCH_INTERVAL:全域環境變數、非必填、預設 60、型別set、缺值時詢問使用者,說明指向實作jsc-gitea/tools/pr-watch.sh。設定項一律要在規格表裡有一列,jsc-cli的設定掃描與doctor才查得到。tools/deploy.shplugin update子指令,而marketplace upgrade只重抓 marketplace 快照;jsc 的marketplace.json只列各網域的 git URL、不含版本,那份檔案內容不會變,codex 一律回「already up to date」並結束碼 0。已安裝外掛的版本是plugin add當下決定的,快取不會被連帶重抓——只跑marketplace upgrade的話,指令全部成功而版本一個都沒動,是最難察覺的那種失敗。所以update模式改成照樣逐網域跑plugin add。plugin.json、.claude-plugin/plugin.json、.codex-plugin/plugin.json設計重點
jsc-hooks/hooks/version-guard.sh都讀存取庫的預設分支master——version-guard.sh取 rawplugin.json時刻意不指定 ref,拿到的就是預設分支那一份。內容留在develop上再完整,已經安裝的 CLI 一律抓不到,版本檢查也照舊回報舊版本。階梯的前三級都已走完,這是最後一級,也是唯一會讓使用者端真的拿到新內容的一級。這一批放的又正好是部署腳本本身,更需要先進master。JSC_PR_WATCH_INTERVAL,預設 60,控制jsc-gitea/tools/pr-watch.sh的輪詢間隔秒數。jsc-cli:deploy的update模式對 codex 多跑一輪逐網域plugin add;在此之前 codex 的更新是假成功——指令全綠,版本一個都沒動。jsc-cli:deploy更新會真的把七個網域升上去,不再停在舊版本。這一項的價值也剛好說明了本 PR 為什麼要放行——修正待在develop上,codex 使用者還是升不動。jsc-git0.0.8):越級的 PR 會被擋下來。base 一律由jsc-git/tools/base-branch.sh --derive推導,推不出唯一合法基底就中止並問使用者,不退回develop。jsc-hooks0.2.3、jsc-sdlc0.1.9):動一支 PR 之前先比對歸屬,不是自己領的那一包就擋,查無歸屬才放行只提醒。逃生門是JSC_WP_GATE=off。JSC_PR_WATCH_INTERVAL,例如JSC_PR_WATCH_INTERVAL=15讓輪詢變密。測試結果
git log --oneline origin/master..origin/develop:7 個 commit。最上面三個是本批的plugins/cli#23、#22與config-spec提交,其下三個是 0.1.6 那批的plugins/cli#21與 codex 更新修正——那一批合併進develop之後一直沒放行,這次一併帶出去。沒有夾帶其他批次的內容。git diff --stat origin/master origin/develop:5 個檔案、11 行新增、3 行刪除,與上表逐項對得上,沒有預期外的檔案。plugins/cli#21、#22、#23完全相同。deploy.sh對 codex 的實機驗證在#21已經做過,這支 PR 沒有重跑。前置 Push Request