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
package/package.json
CHANGED
|
@@ -45,11 +45,12 @@ UC_ID_RE="$(jq -r '.naming.uc_id_pattern' "$PROJECT_JSON")"
|
|
|
45
45
|
exit 1
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
local
|
|
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"
|
|
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="
|
|
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
|
|
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
|
-
-
|
|
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
|
|