Commit Graph
83 Commits
Author SHA1 Message Date
admin 31a1b79dd4 Merge pull request '釋出:收尾寫執行狀態事件,並修好自家腳本路徑' (#37) from develop into master
Reviewed-on: #37
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-09-04 03:37:55 +00:00
admin bbc9dca714 Merge pull request '行為清單那三支腳本的路徑也補上外掛目錄名,補送上一輪沒趕上的修正' (#36) from fix/pr-skill-tool-paths-resolve-to-plugin-root into develop
Reviewed-on: #36
2026-09-04 03:26:47 +00:00
jiantw83andClaude Opus 5 6965e3b24c chore(plugin): 三份 manifest 升版至 0.1.8
上一輪的行為清單修正沒趕上合併,這一筆帶著它重新送出。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-04 11:20:16 +08:00
jiantw83 68c3279062 Merge develop 2026-09-04 11:20:07 +08:00
jiantw83andClaude Opus 5 003593c73a fix(pr): 行為清單那三支腳本的路徑也補上外掛目錄名
上一筆只改了技能本文,行為清單漏掉。新的路徑檢核腳本一跑就指出來——關鍵
步驟與外部呼叫兩欄還留著八處不帶前綴的寫法,而那兩欄正是別人拿來確認這支
技能會呼叫誰的地方。

順手改掉技能本文開頭那一句的舉例方式。原本把不帶前綴的錯誤寫法原樣寫出來
當例子,那一行自己就會被路徑檢核當成一處待改。改成描述後果、不照抄那個
寫法,順便講得更準:省掉外掛目錄名之後,路徑會相對於當下的工作目錄解,
可能解到自己這個存取庫裡對的那一支、可能解到別的 domain 底下另一支,也可能
什麼都解不到。中間那一種最糟,它會跑起來,跑的是另一支腳本。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-04 10:51:31 +08:00
admin eedd2255b4 Merge pull request 'PR 技能自家三支腳本的路徑補上外掛目錄名,不再解到不存在的位置' (#35) from fix/pr-skill-tool-paths-resolve-to-plugin-root into develop
Reviewed-on: #35
2026-09-04 02:46:53 +00:00
jiantw83andClaude Opus 5 5d3f761677 fix(pr): 自家三支腳本的路徑補上外掛目錄名,不再相對於技能目錄
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>
2026-09-04 10:43:54 +08:00
admin bc59208d67 Merge pull request '收尾寫一筆 skill-end 事件,執行狀態才回報得到助理' (#34) from feat/status-report into develop
Reviewed-on: #34
2026-09-02 08:04:40 +00:00
jiantw83 2e42badea0 chore(plugin 版本): 三份 manifest 升版至 0.1.5 2026-09-02 16:01:14 +08:00
jiantw83 bf68ee3436 feat(狀態回報): 收尾寫一筆 skill-end 事件
現行紀錄只記「被叫用」,沒有成敗也沒有結束碼。跑完整輪的技能與開場就
中止的技能,在紀錄裡長得一模一樣。

start 由技能用量 hook 順手發,不必改技能文件。end 只能由技能自己在收尾
步驟寫——hook 接在技能工具呼叫上,而實際工作發生在之後的模型輪次,它在
原理上看不到成敗。有 start 沒有配對的 end,就是那一輪中止了。

status 五選一,每支技能各自寫明什麼情況選哪一個。找不到回報腳本就安靜
跳過,回報失敗一律不改變技能自己的結論。
2026-09-02 16:01:14 +08:00
admin a3876fcc87 Merge pull request '釋出 jsc-assist 的 marketplace 條目' (#33) from develop into master
Reviewed-on: #33
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-09-01 05:31:27 +00:00
admin 9f7865b428 Merge pull request '放行 jsc-assist 的 marketplace 條目到預設分支' (#32) from chore/marketplace-assist-registry/main into develop
Reviewed-on: #32
2026-09-01 04:55:13 +00:00
admin 61d22ae572 Merge pull request 'chore/marketplace-assist-registry/sync-copies' (#31) from chore/marketplace-assist-registry/sync-copies into chore/marketplace-assist-registry/main
Reviewed-on: #31
2026-09-01 04:53:03 +00:00
jiantw83 3e796c79a7 chore(marketplace): 把 jsc-assist 登錄進統一 marketplace
What:
- 兩份 marketplace 檔各加一個 jsc-assist 條目,來源網址指向 assist 存放庫。

Why:
- 準則要求每個 domain 存放庫都帶同一份 marketplace 檔,任何一個存放庫都能當註冊入口。副本之間只要有一份沒跟上,稽核就會報出不一致。
- 正本少了這個條目,各 CLI 的安裝指令就找不到 jsc-assist,這個 domain 等於發佈不出去。

How:
- 條目由 meta 的 sync-marketplace.sh 產生,同時寫進正本與每個 domain 存放庫的副本,寫完逐檔比對位元組。這一支存放庫的兩份副本就是那一輪的產物。
- 條目依名稱排序,縮排與非 ASCII 描述的處理都交給同一支腳本,不手改 JSON。
- 這一批是從最新的預設分支重新產生的。前一輪的分支基底早於監控頁型別那批改動,直接合併會把那些改動回退掉,所以整批重做而不是解衝突。

Who:
助理 domain 落地的註冊步驟在這個存放庫的同步。
2026-09-01 12:50:04 +08:00
admin 1f72392f0b Merge pull request '釋出 jsc-git 0.1.4:修正 commit 技能的 frontmatter 語法' (#29) from develop into master
Reviewed-on: #29
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-09-01 01:02:49 +00:00
jiantw83 57315ea44f Merge pull request '收攏 commit 技能的 frontmatter 語法修正' (#28) from feat/cli-hook-rewire/main into develop 2026-09-01 00:58:40 +00:00
jiantw83 1ef818e1b4 Merge pull request '修正 commit 技能 SKILL.md frontmatter 的 YAML 純量語法' (#27) from feat/cli-hook-rewire/quote-description into feat/cli-hook-rewire/main 2026-09-01 00:56:08 +00:00
jiantw83 4e04de1101 fix(frontmatter): 修正 commit 技能 SKILL.md frontmatter 的 YAML 純量語法錯誤
What:
- 修正 skills/commit/SKILL.md frontmatter 裡 description 欄位的 YAML 語法錯誤。
- 整串 description 加上單引號,內部撇號改寫成兩個單引號,內容文字一個字都沒變。
- 同步更新 plugin.json、.claude-plugin/plugin.json、.codex-plugin/plugin.json 三個 manifest 版本號,從 0.1.3 進到 0.1.4。

Why:
- description 內含「冒號加空白」,屬於未加引號的 YAML plain scalar,違反 YAML 語法規定。
- Antigravity 解析 frontmatter 時當場中斷,整支技能被靜默丟棄,沒有任何錯誤訊息;磁碟上 34 支技能,Antigravity 只認得 28 支。
- 準則要求 description 用英文撰寫,不能把「: 」改成全形冒號迴避語法問題,只能加引號修正。

How:
- 整串 description 值加上單引號,內部撇號寫成兩個單引號跳脫,其餘字元不動。
- 用 git show HEAD: 取出改前的原始值,把改後的單引號純量還原後做字串相等比對,確認逐字相同、字元數一致。
- 執行 ste100-lint.sh、check-behaviors.sh、lint-frontmatter.sh 三支檢查腳本,退出碼皆為 0;git diff --numstat 顯示只動了 frontmatter 那一行。

Who:
- 本次修到 git 技能組的 commit 技能,屬分組 commit 訊息並依 What/Why/How/Who 撰寫本文的功能。
2026-08-31 19:03:18 +08:00
admin 5d2bafb9c9 Merge pull request '釋出 jsc-git 0.1.3:PR 標題改用繁體中文摘要,新增技能行為清單' (#26) from develop into master
Reviewed-on: #26
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-08-31 08:18:38 +00:00
jiantw83 fd5b364f0f Merge pull request '把 commit、pr 兩支技能的行為清單收攏進 develop' (#24) from feat/skill-behaviors-and-version-block/main into develop 2026-08-31 08:10:33 +00:00
jiantw83 717561fa08 Merge pull request 'PR 標題改用繁體中文摘要,不再套用分支名' (#25) from feat/skill-behaviors-and-version-block/pr-title-language into feat/skill-behaviors-and-version-block/main 2026-08-31 08:09:17 +00:00
jiantw83 ec9f1c1559 Merge pull request '新增 commit、pr 兩支技能的行為清單,標清兩者的邊界' (#23) from feat/skill-behaviors-and-version-block/behavior-list into feat/skill-behaviors-and-version-block/main 2026-08-31 08:09:16 +00:00
jiantw83 5d6b73a5cc chore(version): 升版 jsc-git 至 0.1.3
What:
- 三份 plugin manifest 的 version 由 0.1.2 升到 0.1.3。

Why:
- `pr` 技能的標題行為改了,版本要跟著動,各 CLI 才收得到更新。

How:
- 跑 `sh /root/plugins/meta/tools/sync-skill-manifest.sh /root/plugins/git`,退出碼 0。

Who:
- jsc-git 修改代理執行。
2026-08-31 14:38:42 +08:00
jiantw83 9017e4cbf5 feat(pr-title-language): PR 標題改用繁體中文摘要
What:
- `jsc-git:pr` 步驟 7 的 PR 標題改成一句繁體中文摘要,不再等於分支名。
- 步驟 8 的標題校準改成只問標題還描述不描述得了 PR 目前的內容。
- 步驟 3.2 註明摘要就是 PR 標題,規則 4 補上標題與分支名互不套用。
- `references/behaviors.md` 的 pr 一節與 README 的 pr 說明同步新行為。

Why:
- 語言規則明列 PR 標題與描述一律繁體中文,且有 hook 在程式層強制,技能內文擋不住。
- 審查列表全是長串 ASCII slug,看不出這條 PR 改了什麼。
- 分支名給機器判階梯,標題給人看,兩者本來就承擔不同任務。
- 舊校準拿分支名比對標題,每跑一次就把繁中標題改回 slug,還通知所有審查者。

How:
- 步驟 7 改寫標題來源,並在完成條件加上「送出的標題不是分支名」。
- 步驟 8 第一項改成內容比對,寫明分支名不進入這項比對。
- 分支名維持 ASCII,`tools/slugify.sh` 與 `tools/base-branch.sh` 的行為不動。

Who:
- 使用者裁定標題讓位給語言規則,jsc-git 修改代理執行。
2026-08-31 14:38:42 +08:00
jiantw83 fbfae7ed38 chore(plugin): 三份 manifest 版本同步至 0.1.2
What:把 `.claude-plugin/plugin.json`、`.codex-plugin/plugin.json`、`plugin.json` 的 `version` 從 `0.1.1` 改成 `0.1.2`。

Why:本 repo 新增 `references/behaviors.md`,內容有變就要出新版。三份 manifest 分別給 Claude、Codex 與根目錄讀取,版本必須一致,否則版本檢查會判定不相符。

How:只動 `version` 一個欄位,三份檔案改成相同的 0.1.2。描述、技能路徑、`jsc.requires` 的相依範圍都不動。

Who:jsc-git 這個 plugin 的版本標示,供各 CLI 的 plugin 版本檢查使用。
2026-08-31 13:38:52 +08:00
jiantw83 1c85d079ee feat(behaviors): 新增 jsc-git 技能行為清單
What:新增 `references/behaviors.md`。檔內收錄 jsc-git 的 commit、pr 兩節,每節一張五列表,欄位為觸發時機、關鍵步驟、外部呼叫、完成條件、可驗證跡象。

Why:技能驗證原本沒有共同的比對基準,只能回頭讀 SKILL.md 逐段推敲。清單放在 jsc-git 自己的 repo,技能改動與清單走同一個 PR,不會互相漂移,也不用跨 repo 開兩條 PR 互卡。

How:逐支技能盤點行為並寫成固定格式。節標題用技能名稱、欄位順序固定,格式由 `jsc-meta/tools/check-behaviors.sh` 在程式層檢查。觸發時機同時寫該叫用與不該叫用的情形,把 commit 與 pr 的邊界標清楚。外部呼叫逐一列出腳本、`git` 指令、`gitea.sh` 子命令與被叫用的技能。可驗證跡象寫成外部觀察得到的結果,並明講兩支技能都不寫 wiki 頁。

Who:jsc-git 的 commit、pr 兩支技能,供技能驗證使用。日後任何技能異動都要在同一個 PR 內同步更新這一頁。
2026-08-31 13:38:52 +08:00
admin c2d9dc8cfa Merge pull request 'chore(release): 放行技能組稽核修正到預設分支' (#22) from develop into master
Reviewed-on: #22
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-08-31 03:54:27 +00:00
admin 0a66f64ea0 Merge pull request 'fix/skill-check-compliance-and-flow' (#21) from fix/skill-check-compliance-and-flow into develop
Reviewed-on: #21
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-08-31 03:24:26 +00:00
jiantw83 b952af32b8 chore(plugin): 提高 jsc-gitea 相依下限
技能已改用只在新版才有的子命令,下限跟著提高,避免舊版環境跑到那一步失敗。
2026-08-31 11:20:54 +08:00
jiantw83 113b044bb6 docs(pr): 併入上游的流程確認說明並接到重排後的步驟
把上游剛進來的三處確認說明接到重排後的正確步驟,並依準則改寫成英文。
2026-08-31 11:20:27 +08:00
jiantw83 368f6c5f11 chore(plugin): 宣告 jsc-meta 相依
技能改成引用 jsc-meta 的指引正本。相依關係要跟著寫進外掛資訊檔,否則沒裝 jsc-meta 的機器讀不到階梯規則。

- requires 加入 jsc-meta。
- 三份外掛資訊檔一起推進,避免彼此不一致。
2026-08-31 11:05:49 +08:00
jiantw83 25792fd279 docs(tools): 補上腳本結束碼說明,並改指階梯規則正本
腳本標頭沒把每個結束碼代表什麼、該怎麼處理寫清楚,呼叫端只能用猜的。階梯表又同時抄在說明檔與技能內文,改規則時兩邊容易不同步。

- 推導基底的腳本標頭逐碼說明狀況與處置,並標明該碼屬於哪一種模式。
- 產生分支名的腳本標頭補上參數不足的結束碼。
- 說明檔刪掉重複的階梯表,改指向指引的階梯章節。
- 說明檔補上型別優先序腳本的說明,並更新兩支技能的摘要。
2026-08-31 11:05:49 +08:00
jiantw83 fcd0b3b8c0 fix(skills): 補齊失敗分支並解開分組步驟的循環相依
兩支技能的步驟有幾處寫不完整。出錯時流程會走偏,步驟之間也互相卡住。

- 建立 PR、修改 PR、回覆留言、查詢開啟中的 PR,四處原本只寫成功路徑。API 失敗會被當成「沒有開啟中的 PR」,於是在同一支分支上重開一支。現在四處都補上失敗分支。
- 推導基底的腳本結束碼原本只分流三個,其餘落空。現在每個結束碼都有處置與下一步。
- 交叉引用指到收尾步驟,改指回真正做校準的那一步。
- 分組原本被拉進平行區塊,但分組要等盤點的檔案清單,盤點的完成條件又要等分組結果。現在只有註解掃描與盤點平行,分組排在盤點之後。
- 認可與開 PR 原本各查一次開啟中的 PR。改成共用單次查詢,並拿掉認可回呼開 PR 的遞迴。
- 呼叫方傳入的基底改在最前面驗證。基底不合法就當場擋下,不必等命名做完。
- 重複的階梯表從技能內文刪掉,改指向指引正本。
2026-08-31 11:05:49 +08:00
jiantw83 bd277b6e55 feat(tools): 新增 commit 型別優先序腳本
型別優先序原本抄在技能內文裡。改一次要跟著改好幾份,很容易對不起來。
現在把順序收進腳本,讓它成為唯一真實來源。

- 參數與標準輸入都收,commit 標題整行餵進來也認得出型別。
- 沒收到輸入回傳 2,輸入裡沒有階梯表型別回傳 3,呼叫端據此分流。
- 錯誤訊息一律印繁體中文到 stderr。
2026-08-31 11:05:49 +08:00
admin c440ee7b8f Merge pull request 'fix/pr-confirm' (#20) from fix/pr-confirm into develop
Reviewed-on: #20
2026-08-28 10:00:40 +00:00
Jeffery 0106e959a5 docs(pr): PR 流程補確認說明 2026-08-28 17:58:34 +08:00
admin 48b814fcb2 Merge pull request 'release: 發布 jsc-git 相依版本宣告' (#19) from develop into master
Reviewed-on: #19
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-08-28 06:51:51 +00:00
admin cb62c352e1 Merge pull request 'feat/plugin-dependencies/main' (#18) from feat/plugin-dependencies/main into develop
Reviewed-on: #18
2026-08-28 04:04:57 +00:00
admin 57f2756524 Merge pull request 'feat/plugin-dependencies/declare-requires' (#17) from feat/plugin-dependencies/declare-requires into feat/plugin-dependencies/main
Reviewed-on: #17
2026-08-28 04:03:00 +00:00
jiantw83 a47d1649e9 feat(manifest): 宣告 git 技能相依版本 2026-08-28 11:59:16 +08:00
admin c68da1aab9 Merge pull request 'develop' (#16) from develop into master
Reviewed-on: #16
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-08-28 01:58:18 +00:00
admin e8a155689f Merge pull request 'feat/change-requests/main' (#15) from feat/change-requests/main into develop
Reviewed-on: #15
2026-08-28 01:51:05 +00:00
admin 99301272ff Merge pull request 'feat/change-requests/pr-reporting' (#14) from feat/change-requests/pr-reporting into feat/change-requests/main
Reviewed-on: #14
2026-08-28 01:46:47 +00:00
jiantw83 f557d9e750 feat(pr): 統一 PR 收尾回報與留言回覆 2026-08-28 09:30:08 +08:00
admin d83ffb8e05 Merge pull request 'release: v0.0.8 develop 到 master' (#13) from develop into master
Reviewed-on: #13
Reviewed-by: 系統管理員 <1+admin@noreply.localhost>
2026-08-27 04:14:41 +00:00
jiantw83 ad4414ab7d Merge pull request 'feat(git): PR 目標分支改走階梯推導,既有 PR 改為校準不重開' (#12) from feat/sdlc-flow-rules/main into develop 2026-08-27 03:39:40 +00:00
admin 8e42050718 Merge pull request 'feat(git): PR 分支階梯推導與既有 PR 校準' (#11) from feat/sdlc-flow-rules/pr-ladder-and-sync into feat/sdlc-flow-rules/main
Reviewed-on: #11
2026-08-27 03:26:23 +00:00
jiantw83 f62428a4ac chore(manifest): 三份 manifest 版本升到 0.0.8
What:`plugin.json`、`.claude-plugin/plugin.json`、`.codex-plugin/plugin.json` 的 `version` 由 0.0.7 改為 0.0.8。

Why:本次改了 `base-branch.sh` 的介面與 `commit`、`pr` 兩支技能的步驟,屬於行為變更,版本要跟著往上走,各 CLI 才知道要更新。

How:三份只改 `version` 一個欄位,其餘內容不動,三份保持同一版號。

Who:`jsc-git` 外掛的套件描述檔。
2026-08-27 11:20:28 +08:00
jiantw83 7adee55dad docs(git): README 補上 PR 階梯與兩支技能的新行為
What:README 新增「PR 階梯」一節(兩種型別的階梯表、多層子功能的推導方式、推不出就回 `7` 中止、功能主幹自動建立),工具表補上 `base-branch.sh --derive` 與 `slugify.sh` 連叫兩次組多層分支名,`commit` 與 `pr` 兩段說明改寫成新行為。

Why:階梯與校準是這次的行為變更,README 是對外說明。說明沒跟上,使用者會照舊以為 base 可以自己挑、PR 要重開一支。

How:階梯表在 README 只寫一份摘要,唯一來源仍是 `jsc-meta` 的 `references/guidelines.md`。技能說明兩段各補上推導與校準兩件事,用詞與 SKILL.md 一致。

Who:讀 `jsc-git` 說明的人,以及要接 `base-branch.sh` 的其他 domain。
2026-08-27 11:20:28 +08:00
jiantw83 82fb8077fc feat(pr): 目標分支改走階梯,既有 PR 改為校準不重開
What:`pr` 技能新增「PR ladder」一節與階梯形狀的分支命名(`fix` 叫一次 `slugify.sh`,其餘型別叫兩次組出 `{類型}/{功能}/{子功能}`),base 一律由 `base-branch.sh --derive` 推導;新增步驟 6 查目標分支有沒有開啟中的 PR,有就跳到新的步驟 9 比對標題、描述、前置 PR 依賴三項,只有不一樣的那幾項才送 API。`commit` 技能新增步驟 5:認可完成後,目前分支已有 PR 就交給 `pr` 校準。

Why:越級開 PR 與「同一條分支重開第二支 PR」是同一個病灶的兩面——base 與 PR 現況都靠人記。改成先推導、先比對之後,base 由腳本決定,PR 只在真的有差時才更新。

How:呼叫方傳入的 base 仍然照收,但要與推導結果一致;不一致就當成越級擋下,說明正確階梯再問使用者,不會悄悄改目標。校準走 `jsc-gitea` 的 `pr-get` 讀現況、`pr-edit` 一次帶標題與描述、`pr-depend` 補依賴;三項都相同就什麼都不做——每一次多餘的編修都會通知所有審查者,安靜才是對的結果。

Who:`jsc-git:pr` 與 `jsc-git:commit` 兩支技能,以及呼叫它們的 `jsc-sdlc:implement`、`jsc-sdlc:maintain` 與 `jsc-meta` 各技能。
2026-08-27 11:20:28 +08:00