jiantw83
|
daa03828f9
|
chore(marketplace): 把 jsc-assist 登錄進統一 marketplace
What:
- 兩份 marketplace 檔各加一個 jsc-assist 條目,來源網址指向 assist 存取庫。
Why:
- 準則要求每個 domain 存取庫都帶同一份 marketplace 檔,任何一個存取庫都能當註冊入口。副本之間只要有一份沒跟上,稽核就會報出不一致。
How:
- 條目由 meta 的 sync-marketplace.sh 產生,同時寫進正本與每個 domain 存取庫的副本,寫完逐檔比對位元組。這一支存取庫的兩份副本就是那一輪的產物。
- 條目依名稱排序,縮排與非 ASCII 描述的處理都交給同一支腳本,不手改 JSON。
Who:
助理 domain 落地的註冊步驟在這個存取庫的同步。
|
2026-09-01 11:21:36 +08:00 |
|
jiantw83
|
d4b1878967
|
Merge pull request '收攏 maintain 技能的 frontmatter 語法修正' (#50) from feat/cli-hook-rewire/main into develop
|
2026-09-01 00:58:44 +00:00 |
|
jiantw83
|
591263a2af
|
Merge pull request '修正 maintain 技能 SKILL.md frontmatter 的 YAML 純量語法' (#49) from feat/cli-hook-rewire/quote-description into feat/cli-hook-rewire/main
|
2026-09-01 00:56:13 +00:00 |
|
jiantw83
|
c7d9777d04
|
fix(frontmatter): 修正 maintain 技能 SKILL.md frontmatter 的 YAML 純量語法錯誤
What:
- 修正 skills/maintain/SKILL.md frontmatter 裡 description 欄位的 YAML 語法錯誤。
- 整串 description 加上單引號,內部撇號改寫成兩個單引號,內容文字一個字都沒變。
- 同步更新 plugin.json、.claude-plugin/plugin.json、.codex-plugin/plugin.json 三個 manifest 版本號,從 0.2.7 進到 0.2.8。
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:
- 本次修到 sdlc 技能組的 maintain 技能,屬 SDLC 維運階段、定期維護已交付專案的功能。
|
2026-08-31 19:04:17 +08:00 |
|
jiantw83
|
e0e857b84a
|
Merge pull request '收攏 sdlc 四支技能的行為清單,功能主幹併回 develop' (#47) from feat/skill-behaviors-and-version-block/main into develop
|
2026-08-31 08:10:41 +00:00 |
|
jiantw83
|
58a23769f0
|
Merge pull request '列出 analyze、implement、maintain、plan 四支技能的行為清單' (#46) from feat/skill-behaviors-and-version-block/behavior-list into feat/skill-behaviors-and-version-block/main
|
2026-08-31 08:09:28 +00:00 |
|
jiantw83
|
7127d7d932
|
chore(version): 三份 manifest 同步升版到 0.2.7
What:
- `.claude-plugin/plugin.json` 版本從 0.2.6 改成 0.2.7。
- `.codex-plugin/plugin.json` 版本從 0.2.6 改成 0.2.7。
- `plugin.json` 版本從 0.2.6 改成 0.2.7。
Why:
- 本次新增行為清單,屬於外部可見的異動,要升一版。
- 三份 manifest 服務不同的 CLI,版本必須一致。
- 版本一致,版本守衛才判得出這台機器該不該更新。
How:
- 只動三份檔案的 `version` 欄位,其他欄位一個位元組都沒改。
- 版號依既有規則進位一個修訂號。
Who:
- 安裝或更新 jsc-sdlc 外掛的使用者。
- 比對外掛版本的 jsc-hooks 版本守衛與 jsc-cli:deploy。
|
2026-08-31 13:49:26 +08:00 |
|
jiantw83
|
4b482aefc5
|
docs(behaviors): 新增四支技能的行為清單
What:
- 在既有的 `references/` 目錄下新增 `references/behaviors.md`。
- 分成 analyze、implement、maintain、plan 四節,對上 `skills/` 下的四支技能。
- 每節一張五列表:觸發時機、關鍵步驟、外部呼叫、完成條件、可驗證跡象。
Why:
- 技能驗證需要一份共同的參考基準。
- 基準留在文件裡,驗證就不必靠人腦記憶技能該有的行為。
- 清單放在技能自己的存取庫,技能改動與清單才會落在同一個 PR。
- 同一個 PR 就不會漂移,也不用跨存取庫開兩條 PR 互卡。
How:
- 逐支技能讀 SKILL.md,抽出行為填進五列表。
- 稽核時修正三列:analyze、plan、maintain 的階段鎖狀態檔原本寫成 `$JSC_HOME/wp/`。
- 三列改成實際路徑 `$JSC_HOME/sessions/{工作階段 id}.stage`。
- `$JSC_HOME/wp/` 只留給 implement 的工作包領取檔與 PR 鎖檔。
- 用 `sh /root/plugins/meta/tools/check-behaviors.sh /root/plugins/sdlc` 驗格式,退出碼 0。
Who:
- 使用 jsc-sdlc 四支技能的開發者。
- 執行技能驗證的 jsc-meta:skill-check。
- 日後異動這四支技能的維護者,要同步更新這一頁。
|
2026-08-31 13:49:26 +08:00 |
|
jiantw83
|
dfe4ed03ca
|
chore(deps): 補上維護階段實際用到的相依外掛
維護階段的候選方法直接呼叫 jsc-pkg 更新套件,相依清單卻沒有列它。裝了本外掛不一定裝得到,跑到那一步才失敗。
- 三份外掛描述檔都補上 jsc-pkg。
- 提高 jsc-hooks 的版本下限。本次流程倚賴的寫入閘門與留言掃描要新版才有。
- 同步調高本外掛版本。
|
2026-08-31 11:10:30 +08:00 |
|
jiantw83
|
0bb00d2fb9
|
docs(sdlc): 說明同步實際流程
說明跟腳本、技能的實際行為對不上,讀的人會照舊做法走。
- 工作包閘門腳本的檔頭補上上鎖的工作包參數。不帶就沒有歸屬,歸屬比對對誰都放行。
- 腳本用法數量改成正確的五個。
- 四段技能摘要改寫成現在的流程:閘門與停止條件先跑、互不相依的動作併發、寫入閘門只有 claude 擋得住、認可前的留言掃描是其餘四支 CLI 唯一來得及的一道。
|
2026-08-31 11:10:30 +08:00 |
|
jiantw83
|
015ceb66d2
|
perf(sdlc): 停止條件與閘門移到最前面
過去先問來源分支、先產生工作證、先建 worktree,等跑到閘門才發現沒有可挑的項目。前面的決策樹、wiki 寫入、抓取遠端與改名全部白做。
- 實作先讀分析頁、先結清已開 PR 的留言,再逐一過相依閘門,只有通過的候選才進選項。來源分支與工作證都移到領到工作包之後。
- 分析先併行讀計畫與分析目錄,沒有可分析的計畫就直接停。分支隨計畫而變,所以等目標定了才問。
- 互不相依的呼叫改成併發:已開 PR 的狀態批次預取、每個候選的相依查詢同時發、多個存取庫的 worktree 一起建、兩道收尾稽核並列跑。
- 領取登錄不成功就不得開工。沒有登錄,存取庫就沒有歸屬紀錄,之後每一支 PR 都會被當成無人認領而放行。上鎖失敗同樣要停,否則下一個工作階段會在 PR 還沒合併時就被放行。
- 來源分支改成單鍵確認。放棄的是每輪都要使用者明講「來源分支同時是 PR 目標」這道確認;分析頁沒記錄、遠端找不到分支這兩種例外仍走完整決策樹。
- 把仍寫成中文的驗收計畫步驟改回英文,與其他步驟一致。
|
2026-08-31 11:10:30 +08:00 |
|
jiantw83
|
39a7e17b85
|
feat(contents): 目錄頁改為先讀回再附加
目錄頁的每一列都屬於別人的計畫、工作包或存取庫。過去照範本整頁覆寫,別人的列會直接消失,而且寫入不做合併,也沒有備份。
- 五份目錄範本都寫明寫入語意:先讀回整頁,已有的列就更新,沒有才附加。
- 規劃與維護技能加上讀取結束碼分支表。只有「頁面真的不存在」才准照範本建頁;金鑰失效或 API 失敗一律停下來回報,不得當成沒有頁面。
- wiki 讀或寫失敗就停止該階段,並指出是哪一頁、哪一個動作失敗,避免把沒存成功的頁面報成已存。
- 補上寫入閘門只有 claude 擋得住的事實,其餘四支 CLI 只能靠內文約束。
- 記下工作包閘門對規劃階段降為提醒後放棄的在製品上限。
- 維護階段先整批對齊各專案再逐一交給 sub agent,專案之間互不相依。
|
2026-08-31 11:10:30 +08:00 |
|
jiantw83
|
de7962a8c1
|
fix(gate): 閘門說明與實際行為對齊
兩份參考文件跟實際判定互相矛盾。照著做會漏掉收尾,或是擋錯階段。
- 模型閘門非零退出時,該回合仍要跑階段回報。提前停下來也要留紀錄,不然使用者看不到停在哪裡。
- 工作包閘門只擋分析與維護:規劃只印提醒就放行,實作一律放行。實作是結清那支 PR 的唯一路徑,擋了閘門就自己鎖死。
- 順帶把指向實作技能的步驟引用改成新的順序。
|
2026-08-31 11:10:30 +08:00 |
|
jiantw83
|
19d873d19a
|
fix(analyze): 讓測試計畫符合 TDD 循環
|
2026-08-28 16:10:20 +08:00 |
|
jiantw83
|
7804247dd9
|
feat(analyze): 依使用者故事產生驗收計畫
|
2026-08-28 16:07:45 +08:00 |
|
jiantw83
|
309fe905a9
|
feat(analyze): 明確產生 TDD 測試計畫
|
2026-08-28 16:03:00 +08:00 |
|
jiantw83
|
b45958ed25
|
feat(manifest): 宣告 sdlc 技能相依版本
|
2026-08-28 11:59:16 +08:00 |
|
jiantw83
|
8381f334a1
|
fix(implement): 明確指定分析頁檢查工作包相依
|
2026-08-28 09:30:08 +08:00 |
|
jiantw83
|
39c087b31f
|
chore(manifest): 三份 manifest 同步升版至 0.2.0
What:plugin.json、.claude-plugin/plugin.json、.codex-plugin/plugin.json 三份
manifest 的 version 由 0.1.9 改為 0.2.0。
Why:implement 的收尾多了一關 API 文件稽核,是使用者看得到的流程異動,次版號
要跟著進。版本沒跟著升,各 CLI 端的外掛版本護欄就分不出新舊,已安裝的使用者
也收不到更新。
How:三份 manifest 只改 version 欄位,其餘欄位維持原樣,三處版本號保持一致。
Who:jsc-sdlc 外掛的安裝與更新流程。
|
2026-08-27 15:41:38 +08:00 |
|
jiantw83
|
981cda6adf
|
docs(sdlc): README 同步兩關收尾稽核與 jsc-review 的分工
What:README.md 的 implement 摘要,把原本一句「程式碼審查」換成兩關並列的收尾
稽核,寫明偵測、呼叫、跳過三條路徑與各自的退出碼;相關 domain 一節的 jsc-review
說明同步改成兩關,並註明專案支不支援 Swagger 由 swagger-detect.sh 判定、稽核
項目只寫在該技能。
Why:README 是使用者查一支技能做什麼的入口。技能正文改了流程,README 還停在
只有程式碼審查那版,讀的人會以為 API 文件稽核不存在,或以為那是另一支技能自己
的事。
How:只改 implement 摘要那一段的收尾環節,以及相關 domain 的那一行,其餘流程
敘述維持原樣。稽核項目在這裡一樣不重複列,指向 jsc-review:api-doc,避免同一份
判準散在三個檔案裡。
Who:jsc-sdlc 的存取庫說明文件。
|
2026-08-27 15:41:38 +08:00 |
|
jiantw83
|
9b48d16422
|
feat(implement): 收尾改成程式碼審查與 API 文件稽核兩關並列
What:skills/implement/SKILL.md 第 10 步改寫。原本只呼叫 code-review,現在拆成
並列的兩關:10.1 程式碼審查維持原判準,10.2 新增 API 文件稽核——先跑
jsc-review/tools/swagger-detect.sh,退出碼 0 就呼叫 jsc-review:api-doc,1 就
明確跳過並回報,2 就修好參數或路徑重跑。技能的 description 同步改寫。
Why:支援 Swagger 的專案,控制器文件沒補全就等於工作包沒做完。兩關並列而不是
一關套一關,是因為程式碼審查過了不代表 API 文件補齊了,反過來也一樣,任何一關
沒過工作包都不算完成。跳過一定要講出來:沒回報的跳過跟忘記做分不出來。退出碼
2 是偵測不出結果,既不算通過也不算跳過,硬當跳過會讓真的支援 Swagger 的專案
漏掉稽核。
How:改寫刻意只動第 10 步內部,用 10.1、10.2 子項編號,1 到 14 的頂層編號一個
都不動——references/deliver-formats.md 指的「步驟 7」、references/branch.md 指的
「步驟 4 與步驟 11」都還指得到原來的位置。稽核項目不抄一份過來,只寫「看
jsc-review:api-doc」,判準改動時不必兩邊同步。兩關的失敗都是修,不是放行:每一
輪修正都以 sub agent 在同一個 worktree 內進行,修完再稽核一次。
Who:jsc-sdlc 的 implement 技能,工作包的收尾稽核。
|
2026-08-27 15:41:38 +08:00 |
|
jiantw83
|
30c66dd1fd
|
Merge pull request 'feat(sdlc): 工作包隔離、留言先取共識、盯 PR 到合併與每任務一筆日誌' (#30) from feat/sdlc-flow-rules/main into develop
|
2026-08-27 03:39:41 +00:00 |
|
jiantw83
|
fd433d5152
|
chore(manifest): 三份 manifest 版本升到 0.1.9
What:`plugin.json`、`.claude-plugin/plugin.json`、`.codex-plugin/plugin.json` 的 `version` 由 0.1.8 改為 0.1.9。
Why:本次為 `wp-gate.sh` 新增兩個子命令,並改了 `implement` 與 `maintain` 兩支技能的步驟,屬於行為變更,版本要跟著往上走,各 CLI 才知道要更新。
How:三份只改 `version` 一個欄位,其餘內容不動,三份保持同一版號。
Who:`jsc-sdlc` 外掛的套件描述檔。
|
2026-08-27 11:20:30 +08:00 |
|
jiantw83
|
77e7504982
|
docs(sdlc): 參考文件與 README 同步階梯、工作包隔離與日誌粒度
What:`references/branch.md` 新增「分支階梯與 base 推導」一節(只寫拿到 `jsc-git/tools/base-branch.sh --derive` 回應之後要做什麼)與「工作包隔離」一節(歸屬依據、狀態檔欄位、誰寫誰讀、查無歸屬放行、逃生門),閘門分工那一表補上 `claim`、`lock`、`owns`。`references/stage-report.md` 改寫暫存那一節,講明本節只適用於「還沒完成任何任務就停下」的階段。README 的工具表、`implement` 與 `maintain` 兩段說明、參考文件表與相依技能清單同步更新。
Why:階梯表與歸屬狀態檔的正本各有其處——階梯在 `jsc-meta` 的 `references/guidelines.md`,狀態檔格式在 `jsc-hooks`。抄第二份就會有兩份互相打架的規則,但完全不提又會讓實作階段不知道拿到 `7` 或「已建立功能主幹」時該做什麼。
How:兩節都只寫本階段要做的事,並把唯一來源用連結指出去。`branch.md` 的階梯那一節寫成一張「腳本回應 → 這個階段要做的事」對照表,`7` 明寫成「中止並問使用者,不退回 `develop`」。`stage-report.md` 補一句「暫存不等於已寫入」,因為日誌改成一個任務一筆之後,做完事情的階段本來就有日誌可連。
Who:讀 `jsc-sdlc` 參考文件與 README 的人,以及跑實作與維護兩階段的工作階段。
|
2026-08-27 11:20:30 +08:00 |
|
jiantw83
|
733b1a1a69
|
feat(maintain): 每個專案開完 PR 就寫一筆工作日誌
What:`maintain` 步驟 3 新增 3.5「一個專案的維護就是一個完成的任務」,PR 一開好就呼叫 `jsc-log:worklog` 寫一筆,原 3.5 順延為 3.6;步驟 5 的階段回報改成指向 3.5 寫的那幾筆,`--pending-file` 降級為「一個任務都沒完成就停下」時的備援。
Why:維護階段一次跑好幾個專案,原本整個階段結束才補一筆日誌。等到那時候,每個專案各自花掉多少時間、遇到什麼困難都已經混在一起,補出來的是一段概述而不是紀錄。
How:一個專案一筆,下一個專案的 sub agent 開工前要先寫完。條目一律附加到同一頁 `LOG_{HASH}`,`stage-report.sh --pending-file` 暫存的內容併進同一次寫入,寫成功才清除;暫存過的內容不算已寫入的日誌。
Who:跑 SDLC 維護階段的人,以及事後查某個專案上次維護做了什麼的人。
|
2026-08-27 11:20:29 +08:00 |
|
jiantw83
|
44682eaf25
|
feat(implement): 留言先取得共識、盯 PR 到合併、每個任務一筆日誌
What:`implement` 步驟 4 的留言處理拆細:動手前先跑 `wp-gate.sh owns` 確認 PR 是自己這一包的,接著走 `jsc-ask:ask` 決策樹對每一則留言取得共識才修,一輪修完立刻寫一筆工作日誌。步驟 6 領到包就跑 `wp-gate.sh claim`,步驟 11 的 `lock` 帶 `--wp`,開完 PR 先寫日誌再用 `jsc-gitea/tools/pr-watch.sh` 盯到合併,並依退出碼 `0`、`10`、`3`、`2` 分四條路走。Rules 新增「一個任務一筆日誌」一條,步驟 14 的日誌參數改為指向步驟 11 寫的那一筆。
Why:三件事原本都靠模型自己記。留言直接開修,等於把審查者的一句話自行解讀成一種改法,猜錯就多一輪審查;別包的 PR 沒人擋,跨工作階段就會互相踩;日誌等到階段結束才補一次,那時花費時間、token 用量與困難都已經散掉了。
How:留言文本留在 sub agent 裡,主代理只留決策與帳務。`pr-watch.sh` 收到 `10` 就回頭跑同一套留言流程(歸屬、共識、sub agent 修正、逐則結果、時間戳、日誌),跑完再盯一次,審查者要幾輪就幾輪;收到 `0` 再用 `wp-gate.sh check` 分辨已合併與被關掉沒合併,後者回報後停下,不算完成。時間戳一律寫回分析頁**既有**的 PR 欄,不加新欄,分析頁的欄位屬於 `analyze`。日誌一律附加到同一頁 `LOG_{HASH}`,`--pending-file` 暫存的內容併進同一次寫入,寫成功才清除——暫存不等於已寫入。
Who:跑 SDLC 實作階段的每個工作階段,以及接手同一份分析的下一個人。
|
2026-08-27 11:20:29 +08:00 |
|
jiantw83
|
b0dcdaab24
|
feat(wp-gate): 新增 claim 與 owns,把工作包歸屬寫進閘門
What:`tools/wp-gate.sh` 新增 `claim {owner}/{repo} {wp-number} [--analyze {分析頁頁名}]` 登錄領取、`owns {owner}/{repo} {index} [--wp {wp-number}]` 比對某支 PR 是不是自己這一包的;`lock` 新增 `--wp` 把 PR 掛到工作包名下;`check` 判定已合併時一併交回領取紀錄。新增狀態 `claimed`、`owned`、`foreign`、`unowned`,`foreign` 回 `1`,`owned` 與 `unowned` 回 `0`。
Why:同一份分析常有好幾包平行進行,每包各自的 worktree 與 PR。動任何一支 PR 之前要先確認它是自己這一包的,靠的必須是狀態檔而不是記憶——記憶跨不了工作階段。
How:歸屬一律以分析頁的工作包代號為準,不看分支名、不看 worktree 目錄名,那兩個都可能被改,改了也沒有徵兆。`WP-03`、`WP-3`、`3` 比對前先正規化成 `WP-03`,不然同一包的兩種寫法會被當成兩包。狀態檔的寫入一律轉呼叫 `jsc-hooks` 的 `sdlc-gate.sh`,本檔只讀不寫:兩邊各拼各的檔案,格式一改就對不上。查無歸屬(沒有領取紀錄、工作包還沒掛上 PR)一律 `unowned` 並放行只提醒,這與「查不到就擋」不衝突——那條講的是查得到卻查失敗,這條講的是根本還沒有歸屬可查。擋人時要講得出對方是誰,所以 `foreign` 會指出那支 PR 掛在哪一包名下。合併後交回領取紀錄前先確認領取檔登記的正是這一包,中途改領別包時直接交回會把還在進行的那一包的歸屬清掉。
Who:`jsc-sdlc:implement` 領包、開 PR 與處理留言的每一步,以及跨工作階段接手同一份分析的人。
|
2026-08-27 11:20:29 +08:00 |
|
 jiantw83andClaude Opus 5
|
78fb70a099
|
fix(references): 修正 cpm-chart 的簡體字並同步 manifest 版本
What: 把 references/cpm-chart.md 第 14 行的「出现」改成正體「出現」,
並把三份 manifest 的版本由 0.1.7 bump 到 0.1.8。
Why: 存取庫文件一律用正體中文,簡體字會被 STE100 語言檢查擋下,也讓讀規則
的人分心。技能內容有異動就要 bump 版本,安裝端才拿得到新版。
How: 只換掉那一個字,句子其餘文意不動。接著跑 ste100-lint.sh 掃全庫的 .md、
.json 與程式碼檔,再用簡體字全表、U+FFFD、雙重編碼特徵與非 UTF-8 四項掃過每個
受版控的檔案,兩輪都零命中。最後用 sync-skill-manifest.sh 同步 plugin.json、
.claude-plugin/plugin.json、.codex-plugin/plugin.json。
Who: Jeffery
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-27 09:40:47 +08:00 |
|
jiantw83
|
868e4345e9
|
feat(manifest): 三份 manifest 版本升到 0.1.7
What:plugin.json、.claude-plugin/plugin.json、.codex-plugin/plugin.json 的 version 由 0.1.6 改為 0.1.7。
Why:本次為 implement、maintain 與 TDD 參考文件新增註解界線規則,屬於行為變更,版本要跟著往上走,各 CLI 才知道要更新。
How:三份 manifest 只改 version 一個欄位,其餘內容不動,三份保持同一版號。
Who:jsc-sdlc 外掛的套件描述檔。
|
2026-08-26 19:00:56 +08:00 |
|
jiantw83
|
f503091655
|
feat(readme): README 同步 implement 與 maintain 的註解界線
What:README 的 implement 與 maintain 兩段說明各補一句註解界線,點出各自禁止寫進註解的追蹤資訊。
Why:README 是技能的對外說明,兩支技能已加規則,說明沒跟上就會讓使用者誤以為註解沒有限制。
How:兩段各補一句,內容與 SKILL.md 的指引一致,完整清單指向 jsc-review 的 references/comment-scope.md。
Who:jsc-sdlc 的 README 技能說明區塊。
|
2026-08-26 19:00:56 +08:00 |
|
jiantw83
|
31ba3f490a
|
feat(tdd): TDD 循環規則新增註解只寫原因
What:references/tdd.md 的循環規則新增第 4 項「註解只寫原因」,並寫成單一待辦的完成條件。
Why:註解界線要在紅綠循環當下就守住,不能等到審查階段才回頭清,否則追蹤編號早已散進整包 diff。
How:規則只寫一句界線加完成條件,完整清單與白名單指向 jsc-review 的 references/comment-scope.md。
Who:jsc-sdlc 的 TDD 參考文件,implement 與 maintain 兩支技能共用。
|
2026-08-26 19:00:56 +08:00 |
|
jiantw83
|
e6e3e176ef
|
feat(maintain): maintain 步驟加上註解界線規則
What:步驟 3 新增 3.3「註解只寫原因」,原 3.3、3.4 順延為 3.4、3.5。
Why:維護階段常改到既有註解,議題編號、commit hash、分支名、人名與 @ 提及很容易順手留在註解裡,讓註解變成追蹤記錄。
How:規則正文放在 jsc-review 的 references/comment-scope.md,本技能只寫指引與完成條件,不重複清單;並指向 jsc-hooks 的 comment-scope.sh 當寫檔後的即時警告。
Who:jsc-sdlc 的 maintain 技能。
|
2026-08-26 19:00:56 +08:00 |
|
jiantw83
|
cd95c22bd4
|
feat(implement): implement 步驟加上註解界線規則
What:步驟 9 新增 9.3「註解只寫原因」,原 9.3 順延為 9.4;步驟 10 交給 code-review 前先掃整包 diff。
Why:實作階段手上一直握著工作包編號、分析頁編號、待辦編號、分支名與 PR 編號,這些追蹤資訊很容易被寫進程式碼註解,讓註解變成文件索引。
How:規則正文放在 jsc-review 的 references/comment-scope.md,本技能只寫指引與完成條件,不重複清單;並指向 jsc-hooks 的 comment-scope.sh 當寫檔後的即時警告。
Who:jsc-sdlc 的 implement 技能。
|
2026-08-26 19:00:56 +08:00 |
|
jiantw83
|
87d73034c5
|
fix(implement): 工作包 PR 閘門改為只檢查候選工作包自身相依,並修正平行工作包共用 worktree 路徑衝突
|
2026-08-26 17:59:08 +08:00 |
|
jiantw83
|
a82f06b702
|
fix(analyze): 修正 CPM 甘特圖用小數天數的 dateFormat X 導致 Gitea 渲染 Invalid date,改用 dateFormat YYYY-MM-DD 錨點日期、整數小時與 after 串接
|
2026-08-26 15:33:04 +08:00 |
|
 jiantw83andClaude Opus 5
|
4a4feaf6ef
|
feat(sdlc): 四階段收尾一律回報
What:新增 tools/stage-report.sh 與 references/stage-report.md,四支階段技能各加一步收尾回報:模型能力標籤判定、工作日誌連結、所有寫入的 wiki 連結;實作階段再加工作目錄與來源、工作、目標三條分支。
Why:階段跑完該交代什麼是固定的,寫在內文靠模型自己記,少一項看不出來。沒寫工作日誌更是如此——內容只留在對話裡,換一個工作階段就沒了。
How:彙整搬到程式層。頁名換絕對網址、commit 數與推送狀態由 git 現查、來源分支在不在遠端也由腳本判定;模型閘門那一列只轉述 sdlc-gate.sh report,不自評。沒有工作日誌就警告使用者檢查,並把內容交給 jsc-log 的暫存區,下次寫日誌一併寫入。結束碼 1 是警告不是阻擋,提前停下來也要回報。
Who:跑 SDLC 四階段的人,以及接手看紀錄的人。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-08-26 09:19:43 +08:00 |
|
jiantw83
|
a52e47be80
|
chore(sdlc): 三份 manifest 同步升版到 0.1.5
|
2026-08-25 18:59:37 +08:00 |
|
jiantw83
|
f299d1706a
|
docs(sdlc): 補上 wp-gate.sh 工具說明與兩層閘門分工
|
2026-08-25 18:59:37 +08:00 |
|
jiantw83
|
ec23f6ee12
|
feat(implement): 未合併 PR 改為程式層硬閘門,留言自動修正
|
2026-08-25 18:59:37 +08:00 |
|
 jiantw83andClaude Opus 5
|
4dcf5a7401
|
chore(sdlc): 三份 manifest 同步升版並同步 marketplace 正本
What:三份 plugin manifest 版本同步 bump,兩份 marketplace 檔與 plugins/meta 正本對齊。
Why:準則要求技能異動必須同步升版;marketplace 副本必須與正本完全一致。
How:以 jsc-meta 的 tools/sync-skill-manifest.sh 升版,marketplace 檔由正本複製。
Who:jsc-meta:skill-check 例行稽核(2026-08-25)。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-08-25 14:58:54 +08:00 |
|
 jiantw83andClaude Opus 5
|
821261ad9d
|
docs(sdlc): 同步文件與參考資料
What:更新 README、AGENTS.md、templates 與 references,讓文件敘述與實際行為一致。
Why:稽核發現多處文件與程式行為分歧,違反「每個意義只有單一真實來源」。
How:以實際程式行為為準改寫敘述,重複的規則收成單一來源並以一行指引指過去。
Who:jsc-meta:skill-check 例行稽核(2026-08-25)。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-08-25 14:58:54 +08:00 |
|
 jiantw83andClaude Opus 5
|
b78f7e8b3f
|
fix(sdlc): 補齊稽核缺失並修掉護欄失效
What:依 jsc-meta:skill-check 的稽核結果修正技能與工具——補上每個步驟的可檢核完成條件、
把留在內文的標準輸入輸出流程下放 tools/、修正查表與退碼路由造成的誤判。
Why:稽核發現這些缺失會讓技能在實際執行時走錯分支或靜默通過。
完成條件缺漏是最常被違反的一項;退碼誤判與查表錯誤則會讓良性狀況被當成失敗。
How:逐項對照 references/guidelines.md 的審核檢查清單修正,新增的工具都有
documented exit codes,並以真實執行驗證每條路徑。
Who:jsc-meta:skill-check 例行稽核(2026-08-25)。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-08-25 14:58:54 +08:00 |
|
 jiantw83andClaude Opus 5
|
7efdb6fe39
|
chore(plugin 版本): 三份 manifest 升版至 0.1.2
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-25 13:03:17 +08:00 |
|
 jiantw83andClaude Opus 5
|
b0a3fdb3fe
|
docs(README): 同步閘門每次回報的規則
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-25 13:03:17 +08:00 |
|
 jiantw83andClaude Opus 5
|
58792b60c7
|
feat(閘門回報): 模型能力標籤檢查結果每次都要回報使用者
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-25 13:03:17 +08:00 |
|
 jiantw83andClaude Opus 5
|
ad64568cdf
|
chore(plugin 版本): 三份 manifest 升版至 0.1.1
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-25 12:08:11 +08:00 |
|
 jiantw83andClaude Opus 5
|
a5e6eec92c
|
docs(README): 同步 PR 阻擋與留言檢查流程
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-25 12:08:11 +08:00 |
|
 jiantw83andClaude Opus 5
|
3cc5bb5cd2
|
feat(PR 阻擋): PR 未合併不開下一包,檢查時一併讀留言並詢問是否修正
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-25 12:08:11 +08:00 |
|
 jiantw83andClaude Opus 5
|
d8656a4ca3
|
chore(plugin 版本): 三份 manifest 升版至 0.1.0
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-25 11:58:11 +08:00 |
|
 jiantw83andClaude Opus 5
|
dacc9b86d5
|
docs(README): 同步一包一 PR 與來源分支即 PR 目標的說明
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-25 11:58:11 +08:00 |
|
 jiantw83andClaude Opus 5
|
878d34b177
|
feat(一包一 PR): 每個工作包完成即 commit、push、PR 回來源分支
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-25 11:58:11 +08:00 |
|
 jiantw83andClaude Opus 5
|
160e93f65a
|
docs(README): 同步「一律以遠端為準」的分支規則
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-25 11:10:55 +08:00 |
|
 jiantw83andClaude Opus 5
|
543fd8c695
|
feat(分支基準): 參考與來源分支一律取遠端 origin,動作前先 fetch
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-25 11:10:55 +08:00 |
|
 jiantw83andClaude Opus 5
|
082104c550
|
chore(plugin 版本): 三份 manifest 升版至 0.0.9
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-25 11:04:33 +08:00 |
|
 jiantw83andClaude Opus 5
|
9a85af6c4e
|
docs(README): 同步 worktree 流程與分支規則說明
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-25 11:04:33 +08:00 |
|
 jiantw83andClaude Opus 5
|
87af245d54
|
feat(worktree): 實作階段動程式碼前先從來源分支建立 worktree
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-25 11:04:33 +08:00 |
|
 jiantw83andClaude Opus 5
|
c932ab2b36
|
chore(plugin 版本): 三份 manifest 升版至 0.0.8
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-24 18:54:19 +08:00 |
|
 jiantw83andClaude Opus 5
|
2a1dcc59e9
|
fix(wiki 連結): 目錄頁連結方向修正、跨頁型改絕對網址、工作證不再假裝連結
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-24 18:54:19 +08:00 |
|
 jiantw83andClaude Opus 5
|
1d186bf141
|
chore(plugin 版本): 三份 manifest 升版至 0.0.7
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-24 18:00:35 +08:00 |
|
 jiantw83andClaude Opus 5
|
6fe31d1d1a
|
docs(README): 安裝入口改為 plugins/meta 並補上遷移說明
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-24 18:00:35 +08:00 |
|
 jiantw83andClaude Opus 5
|
b5f28e57f9
|
refactor(分支規則): 分支確認改用 sdlc 自帶的 references/branch.md,移除對 jsc-shared 的相依
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-24 17:37:12 +08:00 |
|
 jiantw83andClaude Opus 5
|
4b5385175b
|
chore(plugin 版本): 三份 manifest 升版至 0.0.6
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-24 17:24:31 +08:00 |
|
 jiantw83andClaude Opus 5
|
811eae8fd0
|
docs(README): 補上交付頁型、共識規則與交付內容型別的說明
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-24 17:24:31 +08:00 |
|
 jiantw83andClaude Opus 5
|
62fd2a6022
|
feat(交付與共識): 交付工作包獨立為 WP-01、新增交付內容型別與共識判定規則
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-24 17:24:31 +08:00 |
|
 jiantw83andClaude Opus 5
|
9a6ca0f9ee
|
chore(plugin 版本): 三份 manifest 升版至 0.0.5
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-24 16:05:19 +08:00 |
|
 jiantw83andClaude Opus 5
|
ef4cbc8f88
|
docs(README): 更新階段閘門判定與分支確認說明
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-24 16:05:19 +08:00 |
|
 jiantw83andClaude Opus 5
|
8df6948c5c
|
feat(SDLC 階段): 閘門改為能力標籤程式判定,分析與實作先確認分支,交接工作包優先
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-24 16:05:18 +08:00 |
|
jiantw83
|
8d2b715995
|
refactor(sdlc): 消除四個 SDLC skill 間重複邏輯,改為委派唯一權威來源
What(做了什麼):
1. 移除 plan、analyze、implement 三個 skill 及 README.md 中各自重述的 wiki hash 演算法說明(原本各處都各自寫一遍「取 SHA-1 前 8 碼大寫十六進位,開頭若為數字或 A/B/C 則替換為 H 加後 7 碼」),改為統一指向唯一權威工具 jsc-gitea/tools/hash-id(透過 jsc-gitea:wiki 使用)。
2. 移除 plan、analyze、implement、maintain 四個 skill 中重複的 model chain fallback 選擇邏輯說明(原本各自描述「執行 jsc-cli/tools/model-config.sh get {stage},若印出 chain 則取目前 CLI 可用的第一個,fallback 依 chain 順序套用」),改為統一呼叫新的共用子指令 jsc-cli/tools/model-config.sh resolve {stage},由該子指令自行封裝解析邏輯(此 resolve 子指令由另一位 agent 同時在 sibling repo jsc-cli 開的配套 PR 新增,本 PR 依賴該 PR)。
3. implement/SKILL.md 移除自身多餘的「先解析環境變數」步驟(原第 2 步,手動檢查 JSC_WIKI_REPO_ANALYZE、JSC_WIKI_REPO、JSC_WIKI_REPO_QUESTION、GITEA_HOST、GITEA_TOKEN 後才詢問使用者),因為此解析已由 implement 其他步驟委派的 jsc-gitea:wiki 正確處理,屬於死重複邏輯;後續步驟由 2-8 重新編號為 2-7。
4. maintain/SKILL.md 在 frontmatter description 欄位加入明確的負向觸發說明,釐清此 skill 僅用於已交付、仍在維護窗口內的專案,「不適用於仍在實作中或尚未登錄於 MAINTAIN_CONTENTS 的專案」。
5. plugin.json、.claude-plugin/plugin.json、.codex-plugin/plugin.json 三份版本號檔案,由 0.0.3 升版至 0.0.4。
Why(為什麼改):
四個 SDLC skill 各自重述相同的 hash 演算法與 model chain fallback 邏輯,違反 jsc-meta:skill-check 稽核準則中「單一權威來源」的要求,日後維護容易改一處漏一處;implement 的環境變數解析步驟與其他步驟委派的 jsc-gitea:wiki 功能重疊,屬死碼;maintain 的觸發時機描述不夠明確,容易被誤用在尚未進入維護窗口的專案上。
How(怎麼改的):
將重複邏輯抽離,改為指向或呼叫唯一權威工具/skill(jsc-gitea/tools/hash-id、jsc-cli/tools/model-config.sh resolve、jsc-gitea:wiki),移除 implement 中的死步驟並重新編號,於 maintain frontmatter 補上負向觸發描述,並同步升版三份 plugin.json。全程不改變任何對外行為,純屬重構。
Who(誰/哪個需求):
jsc-meta:skill-check 對 plan、analyze、implement、maintain 四個 SDLC skill 的例行合規稽核修正。
|
2026-08-24 14:50:22 +08:00 |
|
jiantw83
|
da64e97e28
|
fix(marketplace): 同步 marketplace.json 中繼資料至 canonical 版本
What(做了什麼):
修正 .claude-plugin/marketplace.json 與 .agents/plugins/marketplace.json 兩份 marketplace 清單,使其欄位與格式與 plugins/jsc 的 canonical marketplace.json 一致。.agents/plugins/marketplace.json 補上缺漏的頂層 description、owner 欄位,並為全部 11 個 plugin 項目(jsc-ask、jsc-cli、jsc-git、jsc-gitea、jsc-hooks、jsc-log、jsc-meta、jsc-pkg、jsc-review、jsc-sdlc)補上各自的繁體中文用途描述;.claude-plugin/marketplace.json 則將 jsc-meta 描述中的斜線寫法(「新建/更新/刪除技能」)改為 canonical 的頓號寫法(「新建、更新、刪除技能與技能準則」)。
Why(為什麼改):
兩份清單長期與 canonical marketplace.json 不同步,缺欄位與描述格式不一致,會造成各 AI CLI 讀到不完整或不一致的 plugin 資訊,也不符合 jsc-meta:skill-check 的稽核基準。
How(怎麼改的):
以 plugins/jsc 的 canonical marketplace.json 為基準逐欄比對,補齊缺漏欄位、統一描述文字格式,純屬中繼資料調整,不涉及任何 skill 行為邏輯變更。
Who(誰/哪個需求):
jsc-meta:skill-check 例行合規稽核中的 marketplace 中繼資料同步項目。
|
2026-08-24 14:50:12 +08:00 |
|
 jiantw83andClaude Fable 5
|
923fb8e83e
|
chore(manifest): 三份 plugin.json 版本升至 0.0.3
What:plugin.json、.claude-plugin/plugin.json、.codex-plugin/plugin.json 三份 manifest 的 version 由 0.0.2 升為 0.0.3。
Why:本次加入指定模型閘門與 sdlc-gate 階段鎖定屬功能性變更,需要提升版本號讓各 AI CLI 的 plugin 更新機制偵測到新版並重新安裝。
How:同步修改三份 manifest 的 version 欄位,維持三處版本一致。
Who:jsc-sdlc plugin 的安裝與更新流程(jsc-cli:deploy 及各 CLI 原生 plugin 指令)。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-24 11:37:01 +08:00 |
|
 jiantw83andClaude Fable 5
|
91d88df37b
|
docs(readme): 說明指定模型鏈閘門與 sdlc-gate 階段鎖定機制
What:README 開頭的階段模型檢查說明改寫:每次切換階段先以 jsc-cli/tools/model-config.sh get {stage} 解析指定模型鏈(專案 .jsc/models 優先於 $JSC_HOME/models.conf),未設定才退回能力標籤檢查;通過後由 jsc-hooks 的 sdlc-gate hook 鎖定模型直到下一階段重新上鎖。「相關 domain」清單同步更新:jsc-cli 條目補上指定模型鏈工具,新增 jsc-hooks 條目說明 sdlc-gate 階段模型鎖定。
Why:四個技能的閘門邏輯已改為指定模型優先、標籤備援並上鎖,README 若仍描述舊的「僅檢查能力標籤」流程會誤導使用者,也漏掉新依賴的 jsc-hooks domain。
How:改寫首段的階段檢查敘述,補明設定檔優先序與鎖定生效範圍(同一階段內換模型會被擋下);相關 domain 章節加入 jsc-hooks 連結並擴充 jsc-cli 條目。
Who:jsc-sdlc domain 的 README 文件,服務安裝與使用此技能組的使用者。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-24 11:36:49 +08:00 |
|
 jiantw83andClaude Fable 5
|
2705771c20
|
feat(gate): 四階段模型閘門改為指定模型優先、能力標籤備援,並以 sdlc-gate 上鎖
What:plan、analyze、implement、maintain 四個 SKILL.md 的第一步從單純的能力標籤檢查,改為「模型閘門與階段上鎖」三段流程:先以 jsc-cli/tools/model-config.sh get {stage} 解析該階段的指定模型鏈,鏈上第一個當前 CLI 可用的模型即為必用模型;沒有設定指定模型時才退回 jsc-cli:models 的能力標籤檢查。閘門通過後執行 jsc-hooks/hooks/sdlc-gate.sh lock {stage} {current-model} 寫入鎖檔,並以 sdlc-gate.sh report 驗證。
Why:原本只驗能力標籤,同一標籤下模型可任意替換,階段中途換模型也無人攔阻,導致產出品質與可重現性不穩定。改為指定模型鏈優先可讓團隊明確指派每階段用哪個模型,標籤備援則保留未設定時的彈性;上鎖後由 hook 在每次 prompt 強制檢查,階段內換模型會被擋下。
How:每個技能的步驟一拆成三小步(解析模型鏈、驗證當前模型、上鎖並驗證鎖檔),各小步附完成條件;maintain 另加第四小步,明確規定只在換階段時重跑閘門,維護階段內跨專案不重複驗證。frontmatter description 同步更新。鎖定自 plan 起手生效,直到下一階段(如 analyze)的閘門重新上鎖前,強制沿用同一模型。
Who:jsc-sdlc 的 plan/analyze/implement/maintain 四個技能,及依賴其閘門行為的 jsc-hooks sdlc-gate hook。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-24 11:36:33 +08:00 |
|
jiantw83
|
1153f7f064
|
fix(wiki): 統一 SDLC wiki 頁命名與 ERROR 範本
|
2026-08-21 16:53:17 +00:00 |
|
 jiantw83andClaude Fable 5
|
a245ae8eea
|
chore(sdlc): 加入統一 jsc marketplace 副本(與正本一致,任一 repo 可作註冊入口)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-21 14:37:51 +08:00 |
|
 jiantw83andClaude Fable 5
|
87557df539
|
style(sdlc): 中文並列改頓號
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-21 14:29:47 +08:00 |
|
 jiantw83andClaude Fable 5
|
71bebc6848
|
docs(sdlc): translate SKILL.md into English per guidelines
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-21 14:29:47 +08:00 |
|
 jiantw83andClaude Fable 5
|
9f606b277b
|
style(sdlc): 依 STE100 擬人台灣感規則改寫語感
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-21 14:17:32 +08:00 |
|
 jiantw83andClaude Fable 5
|
ebd1aa9eb9
|
docs(sdlc): AGENTS 語言規則改指向 jsc-meta 的 references/ste100.md
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-21 14:13:27 +08:00 |
|
 jiantw83andClaude Fable 5
|
bc4aff7bf4
|
docs(sdlc): README 安裝/更新/移除改為每指令一行(五個 CLI)並為相關 domain 加上 repo 連結
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-21 14:03:40 +08:00 |
|
 jiantw83andClaude Fable 5
|
8bc4ab4f83
|
chore(sdlc): 版本號改為 0.0.1 並移除個別 marketplace(統一為 jsc)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-21 14:03:40 +08:00 |
|
 jiantw83andClaude Fable 5
|
daf49bdd28
|
docs(sdlc): 以統一格式改寫繁體中文 README 與 AGENTS
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-21 13:08:43 +08:00 |
|
 jiantw83andClaude Fable 5
|
167f62a35c
|
feat(sdlc): 匯入 jsc-sdlc 技能組
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-21 13:08:43 +08:00 |
|
 jiantw83andClaude Fable 5
|
bd81aa8152
|
chore(sdlc): 修正範本 manifest 與移除 hello 範例符合 sdlc 領域
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-21 13:08:18 +08:00 |
|
jiantw83
|
227878e65e
|
Initial commit
|
2026-08-21 04:43:16 +00:00 |
|