Files
sdlc/skills/plan/SKILL.md
T
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

4.6 KiB

name, description
name description
plan SDLC planning stage. Gate on capability tags enforced in code by sdlc-gate (plan requires reasoning-max, verified against the transcript's actual model id), 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}, then close with tools/stage-report.sh - model tag verdict, worklog link, every wiki link written. 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} used to build the PLAN_{HASH} page name, computed by jsc-gitea/tools/hash-id (see jsc-gitea:wiki). All wiki reads and writes go through jsc-gitea:wiki.

Steps

  1. Model gate and stage lock — run jsc-cli/tools/model-tags.sh sync, then jsc-hooks/hooks/sdlc-gate.sh lock plan. This stage requires the reasoning-max capability tag. Rules: references/model-gate.md. Completion condition: the script exited 0, and you have reported the stage, the required tag, the actual model id it read from the transcript, and the verdict.

  2. Read PLAN_CONTENTS via jsc-gitea:wiki and list the plans whose status is the literal 「未分析」 (not analyzed), with names and HASH. Completion condition: you have listed every 未分析 plan with its name and HASH, or reported that none exists.

  3. Let the user choose per jsc-ask:ask rules: extend an existing plan (list the not-analyzed plans as options) or create a new plan. State the impact scope on every option. Completion condition: the user has picked one option explicitly, and you have named the PLAN_{HASH} page this run writes to.

  4. Keep questioning until consensus — rules in references/consensus.md, which is the single authority for both planning and analysis. Cover all three items:

    • 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.

    One round is never enough: every answer must produce the next question, derived from what that answer just exposed. Never fill a gap with your own assumption, and never move on to user stories while any item is still open.

    Completion condition: all three items are settled under both conditions of references/consensus.md — no remaining unknown that would change the output, and the user's explicit confirmation of the summary you read back.

  5. Turn the consensus into user stories (the zh-TW pattern 「身為⋯⋯我想要⋯⋯以便⋯⋯」), one per line. Completion condition: every consensus item is covered by at least one user story in that pattern, and no user story rests on an unanswered question.

  6. Apply templates/plan-page.md to create or update the plan page, and write it back via jsc-gitea:wiki. The page content is Traditional Chinese, exactly as the template dictates. Completion condition: the page is saved on the wiki and carries every section the template dictates — goal, scope, feasibility, user stories and the consensus summary — with no placeholder left unfilled.

  7. If the plan page is new, add it to PLAN_CONTENTS using the entry format of templates/plan-contents.md, with status set to the literal 「未分析」. Completion condition: PLAN_CONTENTS shows the plan's row with the literal 「未分析」, saved on the wiki.

  8. Stage report — the last thing this stage does, including every early stop (the model gate blocked, no plan was selectable). Run tools/stage-report.sh plan with one --page PLAN:{page} per wiki page this run wrote (PLAN_{HASH} and PLAN_CONTENTS both count), plus --worklog and --worklog-heading when a work log entry exists. No work log yet: write this stage's log content to a file and pass --pending-file {file} --log-hash {HASH} so it is held for the next jsc-log:worklog run. Rules and exit codes: references/stage-report.md. Exit 1 is a warning, never a block. Completion condition: the script's output is reported to the user verbatim, and every wiki page this run wrote appears in it.

Hard limits

  • Never output a code snippet.
  • Never modify any file in the working directory.
  • Never skip the decision tree and assume requirements.
  • Never stop questioning after one round; consensus is reached only under references/consensus.md, and the user says so.