Commit Graph
20 Commits
Author SHA1 Message Date
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 ec23f6ee12 feat(implement): 未合併 PR 改為程式層硬閘門,留言自動修正 2026-08-25 18:59:37 +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 58792b60c7 feat(閘門回報): 模型能力標籤檢查結果每次都要回報使用者
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-25 13:03:17 +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 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 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 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 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 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 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
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 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 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