spec-runner 1.1.2 → 1.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/docs/flow.md CHANGED
@@ -69,3 +69,4 @@
69
69
  3. コミット前に `docs/work.md` の `- [ ]` を確認する
70
70
  4. 完了時に `docs/work.md` の検証結果を更新する
71
71
  5. UC を十分に作ってレビュー完了したら `uc_discovery.completed` を `true` にする
72
+ 6. カテゴリは箱として扱い、1カテゴリに UC を複数(目安 2〜3 件以上)用意してからドメインへ進む
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spec-runner",
3
- "version": "1.1.2",
3
+ "version": "1.1.5",
4
4
  "description": "フェーズ駆動で設計先行を強制。npx で .spec-runner を展開し、次のステップ .md に従って進める",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -45,11 +45,12 @@ UC_ID_RE="$(jq -r '.naming.uc_id_pattern' "$PROJECT_JSON")"
45
45
  exit 1
46
46
  }
47
47
 
48
- next_uc_id() {
49
- local dir="$REPO_ROOT/docs/02_ユースケース仕様"
48
+ next_uc_id_for_category() {
49
+ local category="$1"
50
+ local dir="$REPO_ROOT/docs/02_ユースケース仕様/${category}"
50
51
  mkdir -p "$dir"
51
52
  local max=0
52
- for f in "$dir"/*/UC-*.md; do
53
+ for f in "$dir"/UC-*.md; do
53
54
  [[ -e "$f" ]] || continue
54
55
  base=$(basename "$f" .md)
55
56
  if [[ "$base" =~ ^(${UC_ID_RE})- ]]; then
@@ -63,7 +64,8 @@ next_uc_id() {
63
64
  printf "UC-%d\n" $((max + 1))
64
65
  }
65
66
 
66
- NEXT_UC="$(next_uc_id)"
67
+ NEXT_UC=""
68
+ UC_ID_EXPLICIT=0
67
69
  SLUG=""
68
70
  TITLE=""
69
71
  CATEGORY=""
@@ -74,6 +76,7 @@ if [[ ${#ARGS[@]} -ge 1 ]] && [[ "${ARGS[0]}" =~ ^${UC_ID_RE}$ ]]; then
74
76
  exit 1
75
77
  }
76
78
  NEXT_UC="${ARGS[0]}"
79
+ UC_ID_EXPLICIT=1
77
80
  SLUG="${ARGS[1]}"
78
81
  TITLE="${ARGS[2]}"
79
82
  CATEGORY="${ARGS[3]}"
@@ -113,6 +116,10 @@ if [[ -z "$CATEGORY" ]]; then
113
116
  exit 1
114
117
  fi
115
118
 
119
+ if [[ $UC_ID_EXPLICIT -eq 0 ]]; then
120
+ NEXT_UC="$(next_uc_id_for_category "$CATEGORY")"
121
+ fi
122
+
116
123
  FEATURE_DIR="docs/02_ユースケース仕様/${CATEGORY}"
117
124
  UC_DOC="${FEATURE_DIR}/${NEXT_UC}-${DOC_TITLE}.md"
118
125
 
@@ -28,9 +28,10 @@ $ARGUMENTS
28
28
 
29
29
  ## フォルダの作成
30
30
 
31
- - **`docs/02_ユースケース仕様/`** が無ければ新規作成。**カテゴリごとにフォルダ**(例: タスク管理、認証)を切り、その中に **UC-N-xxx.md 1 本**。
31
+ - **`docs/02_ユースケース仕様/`** が無ければ新規作成。**カテゴリごとにフォルダ**(例: タスク管理、認証)を切り、その中に **UC-N-xxx.md を複数本**作る(カテゴリは 1 UC で終わらせない)。
32
32
  - `uc-next-start.sh` でカテゴリ指定するとそのフォルダ内に作成される。
33
33
  - **CRUD は原則別 UC**(作成 / 編集 / 削除を分ける)。同一フロー・同一権限・同一受入条件で差分が小さい場合のみ統合可。
34
+ - 目安: 1カテゴリにつき最低 2〜3 UC。MVP は最小 1 UC でも可だが、次に必ず細分化候補を洗い出す。
34
35
 
35
36
  ## 実行フロー
36
37
 
@@ -31,7 +31,9 @@ $ARGUMENTS
31
31
 
32
32
  3. **結果を報告する**
33
33
  - 実行したフェーズを簡潔に報告する。
34
- - 各ステップ末尾のとおり、**このコマンド(spec-runner)を再度実行**して次のステップに進む。
34
+ - 次ステップが同一フェーズのまま(例: Phase 0 継続)の場合は、**再実行指示だけで終わらせない**。`phase-locks.json` / quality 状態を確認し、**未達条件(何が足りないか)**を 1-3 点で明示する。
35
+ - そのうえで、ユーザーが今すぐできる**次アクション**を具体的に提示する(例: 「`charter.completed` を true にする」「`quality.clarified.charter` を満たす更新を入れる」)。
36
+ - 未達条件が解消した後に、**このコマンド(spec-runner)を再実行**して次へ進む。
35
37
 
36
38
  ## ルール
37
39
 
@@ -40,4 +42,5 @@ $ARGUMENTS
40
42
  - ステップ内容は `.spec-runner/steps/` 配下にあり、spec-runner は現在フェーズ用のファイルを読み実行する。
41
43
  - **Work Card**: 常に `docs/work.md` を正本として更新する(目的・受入条件・実装タスク・検証結果)。
42
44
  - **Skills化(任意)**: 同じ作業が繰り返しになる場合、AI は次に進む前に Skills を提案する。テンプレートは `templates/skills/` 配下(`uc-k1-work-card-init`, `uc-k2-pre-commit-check`, `uc-k3-spec-impl-diff-review`)を優先し、必要なら `.claude/skills/<skill-name>/` に取り込んで使う。
45
+ - **報告フォーマット(必須)**: 報告の最後に、必ず「次のアクション」を **1〜3 件**提示する。形式は **A/B(必要ならC)** とし、各案は「今やる操作」と「期待結果」を1行で書く。
43
46