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>
3.0 KiB
3.0 KiB
name, description
| name | description |
|---|---|
| plan | SDLC planning stage. Gate on the designated model (model-config) or capability tags, lock the model for the stage via sdlc-gate, pick or create a plan from PLAN_CONTENTS, then run a decision tree until goal, scope, and feasibility reach consensus. Produce user stories into wiki page PLAN_{HASH}. Logic only - never write code or modify files. Use when the user wants to start or refine a plan; not for analysis or implementation. |
plan
Goal: create or extend the wiki plan page PLAN_{HASH}.
This skill is a logic-only stage: never output code, and never modify any file.
{HASH} = the shared wiki hash for {owner}/{repo}: take the first 8 uppercase hex chars of its SHA-1. If the first char is a digit, or A/B/C, replace it with H and keep the next 7 chars.
All wiki reads and writes go through jsc-gitea:wiki.
Steps
- Model gate and stage lock:
- Resolve the plan stage's designated model chain: run
jsc-cli/tools/model-config.sh get plan. If it prints a chain, the required model is the first entry of the chain the current CLI can use (fallbacks apply in chain order). If it prints nothing, fall back to the capability-tag check viajsc-cli:models(planning requires the reasoning-high tag). - If the current model is not the required model, or fails the tag check, block the flow and tell the user which model to switch to. Completion condition: the current model satisfies the gate.
- Lock the stage: run
jsc-hooks/hooks/sdlc-gate.sh lock plan {current-model}. From now until the next SDLC stage's gate runs, the sdlc-gate hook enforces this model on every prompt; switching models mid-stage gets blocked. Completion condition: the lock file is written, verified withsdlc-gate.sh report.
- Resolve the plan stage's designated model chain: run
- Read
PLAN_CONTENTSviajsc-gitea:wikiand list the plans whose status is the literal 「未分析」 (not analyzed), with names and HASH. - Let the user choose per
jsc-ask:askrules: extend an existing plan (list the not-analyzed plans as options) or create a new plan. State the impact scope on every option. - Question via the
jsc-ask:askdecision tree until no doubt remains on all three items; keep asking while consensus is missing:- Goal: the problem to solve and the criteria for success.
- Scope: what is included, what is excluded, which repositories are involved.
- Feasibility: whether the system architecture and data sources support the goal.
- Turn the consensus into user stories (the zh-TW pattern 「身為⋯⋯我想要⋯⋯以便⋯⋯」), one per line.
- Apply
templates/plan-page.mdto create or update the plan page, and write it back viajsc-gitea:wiki. The page content is Traditional Chinese, exactly as the template dictates. - If the plan page is new, add it to
PLAN_CONTENTSusing the entry format oftemplates/plan-contents.md, with status set to the literal 「未分析」.
Hard limits
- Never output a code snippet.
- Never modify any file in the working directory.
- Never skip the decision tree and assume requirements.