What:在 commit 技能的清點步驟之後、實際認可之前,新增一個掃描步驟,呼叫 jsc-hooks 的 comment-scope.sh sweep 掃過整個工作區,並在 README 的技能目錄補上同一句說明。原步驟編號往後順延。 Why:註解禁止夾帶文件相關資訊這條規則,目前只有 claude 接得到寫檔後的即時掃描;codex、copilot、antigravity、kiro 都得等到每輪結束或工作階段結束才有機會發現。commit 是五支 CLI 共用的提交路徑,在這裡掃一次,違規註解就進不了 commit。 How:新步驟只指向 jsc-review 的 references/comment-scope.md,不抄規則清單。腳本找不到 git 工作區或 jsc-hooks 不在本機時會安靜結束,此時跳過這一步並在回報中說明,不中止認可;exit 2 代表命中,就地修好再重跑到 exit 0 才認可。警告是給人與模型判讀,不是硬性阻擋,確認誤判就照實說明後繼續。步驟附可檢核的完成條件。 Who:jsc-git 的 commit 技能,以及所有經由它提交的 CLI。
54 lines
3.8 KiB
Markdown
54 lines
3.8 KiB
Markdown
# jsc-git — Commit 與 Push Request
|
||
|
||
jsc 技能組的 git domain:把檔案變更依同類型與同需求或功能分組認可,並建立符合範本的 Push Request。
|
||
|
||
## 安裝、更新、移除
|
||
|
||
Marketplace 統一為 `jsc`(https://gitea.jsc.idv.tw/plugins/meta.git),安裝 token 為 `jsc-git@jsc`。每個指令一行:
|
||
|
||
| CLI | 安裝 | 更新 | 移除 |
|
||
| --- | --- | --- | --- |
|
||
| claude | `claude plugin marketplace add https://gitea.jsc.idv.tw/plugins/meta.git && claude plugin install jsc-git@jsc` | `claude plugin marketplace update jsc && claude plugin update jsc-git@jsc` | `claude plugin uninstall jsc-git@jsc` |
|
||
| codex | `codex plugin marketplace add https://gitea.jsc.idv.tw/plugins/meta.git && codex plugin add jsc-git@jsc` | `codex plugin marketplace upgrade jsc` | `codex plugin remove jsc-git@jsc` |
|
||
| copilot | `copilot plugin marketplace add https://gitea.jsc.idv.tw/plugins/meta.git && copilot plugin install jsc-git@jsc` | `copilot plugin marketplace update jsc && copilot plugin update jsc-git@jsc` | `copilot plugin uninstall jsc-git@jsc` |
|
||
| antigravity | `git clone https://gitea.jsc.idv.tw/plugins/git.git ~/plugins/git && agy plugin install ~/plugins/git` | `git -C ~/plugins/git pull && agy plugin uninstall jsc-git && agy plugin install ~/plugins/git` | `agy plugin uninstall jsc-git` |
|
||
| kiro | `kiro-cli plugin marketplace add https://gitea.jsc.idv.tw/plugins/meta.git && kiro-cli plugin install jsc-git@jsc` | `kiro-cli plugin marketplace update jsc && kiro-cli plugin update jsc-git@jsc` | `kiro-cli plugin uninstall jsc-git@jsc` |
|
||
|
||
> antigravity 不支援 gitea URL 安裝,改用本地 clone 路徑。批次操作五個 CLI:使用 `/jsc-cli:deploy`。
|
||
|
||
> 舊入口 `plugins/jsc` 已移除,marketplace 正本移到 `plugins/meta`。marketplace 名稱仍是 `jsc`(取自 marketplace.json 的 `name` 欄位,與存取庫名無關),安裝 token 不變;已從舊入口安裝過的人先執行 `claude plugin marketplace remove jsc`,再依上表重新 add。
|
||
|
||
## 工具
|
||
|
||
| 檔案 | 用途 |
|
||
| --- | --- |
|
||
| `tools/base-branch.sh` | 決定 PR 基底分支:呼叫方傳入的分支最優先,沒傳才依序試 develop、main、master;一律確認分支存在於遠端,找不到就回傳非零。「沒傳」看參數個數,傳入空字串算錯誤,不會退回 develop |
|
||
| `tools/slugify.sh` | 把類型與英文短語組成 ASCII 分支名 `{type}/{slug}`;輸入含非 ASCII 或 slug 化後為空,就回傳非零並要求先翻譯成英文短語 |
|
||
|
||
## Skills 目錄
|
||
|
||
呼叫方式:Claude / Antigravity `/jsc-git:{name}`;Codex `${name}`;Copilot / Kiro 描述需求自動觸發。
|
||
|
||
<!-- JSC-SKILLS:START -->
|
||
|
||
### `commit`
|
||
|
||
追蹤所有檔案變更,依 Commit 格式 `{類型}({需求 or 功能}): {訊息}` 將同類型與同需求的變更認可在一起。認可前先跑 `jsc-hooks` 的 `comment-scope.sh sweep` 掃過工作區,攔下夾帶文件相關資訊的註解;腳本不在本機就跳過並在回報中說明,不中止認可。訊息格式三選一:完整版(What/Why/How/Who)、簡易版(依 git diff 總結一句)、自訂。
|
||
|
||
### `pr`
|
||
|
||
先認可所有變更,再建立目標分支、push、以範本描述建立 Gitea PR。基底分支優先採用呼叫方傳入的分支;呼叫方沒傳,才依序退回 develop、main、master。分支名只允許 ASCII:類型取 commit 優先度最高者,標題先翻譯成英文短語再 slug 化。
|
||
|
||
<!-- JSC-SKILLS:END -->
|
||
|
||
## 範本
|
||
|
||
| 檔案 | 用途 |
|
||
| --- | --- |
|
||
| `templates/pr-description.md` | PR 描述:摘要、變更內容、設計重點、測試結果、前置 PR |
|
||
|
||
## 相關 domain
|
||
|
||
- [`jsc-gitea`](https://gitea.jsc.idv.tw/plugins/gitea):建立 PR(`tools/gitea.sh pr-create`)
|
||
- [`jsc-sdlc`](https://gitea.jsc.idv.tw/plugins/sdlc):PR 描述中的計畫頁與分析頁連結
|