spec-runner 1.0.22 → 1.0.23

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spec-runner",
3
- "version": "1.0.22",
3
+ "version": "1.0.23",
4
4
  "description": "フェーズ駆動で設計先行を強制。npx で .spec-runner を展開し、次のステップ .md に従って進める",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -288,7 +288,11 @@ run_phase() {
288
288
  local kind="$1" # clarified | analyzed
289
289
  local scope="$2" # charter | domain | architecture | uc
290
290
  local key="$3"
291
- jq -e --arg k "$key" --arg s "$scope" ".quality.${kind}[\$s][]? == \$k" "$LOCK_FILE" >/dev/null 2>&1
291
+ # 互換性のため、quality には「ベース名」と「.md 付き」の両方を許容する
292
+ local key_md="${key}.md"
293
+ jq -e --arg k "$key" --arg km "$key_md" --arg s "$scope" \
294
+ ".quality.${kind}[\$s][]? | select(. == \$k or . == \$km)" \
295
+ "$LOCK_FILE" >/dev/null 2>&1
292
296
  }
293
297
 
294
298
  resolve_step() {
@@ -18,6 +18,7 @@ primary_output: docs/02_ユースケース仕様/<カテゴリ>/UC-N-xxx.md
18
18
  ## ユーザー入力
19
19
 
20
20
  `$ARGUMENTS` が機能説明。空でコマンドしていない限り、繰り返し入力を求めない。
21
+ ただし **`$ARGUMENTS` が空** の場合は停止せず、AI 側で候補提案を行ってユーザー選択に進む。
21
22
 
22
23
  ```text
23
24
  $ARGUMENTS
@@ -41,6 +42,17 @@ $ARGUMENTS
41
42
  - まず作る 1 件(最小価値)
42
43
  - 合意後は **1 件ずつ** `uc-next-start.sh` で作成する(CRUD は原則別 UC)。
43
44
 
45
+ ### 0.5. 引数なし時の候補提示(必須)
46
+
47
+ - 条件: `$ARGUMENTS` が空。
48
+ - 挙動:
49
+ 1. AI がこのプロジェクト向けの機能案を **3〜5 件**提示する。
50
+ 2. 各案は 1 行で、`案N: 目的 / 主な利用者 / 想定カテゴリ` の形式で簡潔に示す。
51
+ 3. 「番号で選択」または「自由入力で別案指定」を案内する。
52
+ 4. **ユーザーが選ぶまで `uc-next-start.sh` を実行しない**。
53
+ - ユーザー回答後:
54
+ - 選択された案(または自由入力文)を今回の機能説明として扱い、以降のステップを通常どおり実行する。
55
+
44
56
  ### 1. ブランチ用短名(2〜4 語)
45
57
 
46
58
  - 機能説明からキーワード抽出。**ブランチ名は ASCII のみ**、kebab-case(例: order-placement, user-auth)。
@@ -65,7 +77,7 @@ $ARGUMENTS
65
77
 
66
78
  ### 4. 本文生成の内訳
67
79
 
68
- 1. 入力パース。空なら ERROR「機能説明が指定されていません」
80
+ 1. 入力パース。空なら「0.5 引数なし時の候補提示」を実施し、選択後に続行する(即 ERROR にしない)
69
81
  2. 重要概念(アクター・アクション・データ・制約)
70
82
  3. 不明点: **推測で確定しない** → **`[要確認: ...]`**。付けるのは影響大・解釈複数・デフォルト無しのときのみ。**上限 3 個**。優先: スコープ > セキュリティ > UX > 技術詳細
71
83
  4. 「ユーザーシナリオとテスト」を埋める。フロー特定できなければ ERROR