spec-runner 1.0.23 → 1.0.24
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
|
@@ -18,6 +18,11 @@ REPO_ROOT="${REPO_ROOT:-$(git rev-parse --show-toplevel 2>/dev/null || echo ".")
|
|
|
18
18
|
cd "$REPO_ROOT"
|
|
19
19
|
BRANCH_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
20
20
|
|
|
21
|
+
# Git 未初期化ワークスペースでは最小構成で初期化する(main を既定化)
|
|
22
|
+
if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
|
|
23
|
+
git init -b main >/dev/null 2>&1 || git init >/dev/null 2>&1
|
|
24
|
+
fi
|
|
25
|
+
|
|
21
26
|
YES_MODE=false
|
|
22
27
|
ARGS=()
|
|
23
28
|
for a in "$@"; do
|
|
@@ -44,6 +49,17 @@ BRANCH_PREFIX="$(jq -r '.naming.branch_prefix' "$PROJECT_JSON")"
|
|
|
44
49
|
exit 1
|
|
45
50
|
}
|
|
46
51
|
|
|
52
|
+
# 憲章の未コミット変更があれば、AI によるレビュー付きコミットを先に行う
|
|
53
|
+
CHARTER_DOC="$REPO_ROOT/docs/01_憲章/憲章.md"
|
|
54
|
+
if [[ -f "$CHARTER_DOC" ]]; then
|
|
55
|
+
if [[ -n "$(git status --porcelain -- "$CHARTER_DOC")" ]]; then
|
|
56
|
+
echo "Error: 憲章に未コミット変更があります: $CHARTER_DOC" >&2
|
|
57
|
+
echo " 先に AI に差分を確認させ、適切なコミットメッセージでコミットしてください。" >&2
|
|
58
|
+
echo " その後に uc-next-start.sh を再実行してください。" >&2
|
|
59
|
+
exit 1
|
|
60
|
+
fi
|
|
61
|
+
fi
|
|
62
|
+
|
|
47
63
|
next_uc_id() {
|
|
48
64
|
# docs/02_ユースケース仕様/<カテゴリ>/UC-*.md から次に使う UC-N を返す
|
|
49
65
|
local dir="$REPO_ROOT/docs/02_ユースケース仕様"
|
|
@@ -158,8 +174,20 @@ if [[ "$YES_MODE" != true ]]; then
|
|
|
158
174
|
esac
|
|
159
175
|
fi
|
|
160
176
|
|
|
161
|
-
|
|
162
|
-
git
|
|
177
|
+
# 初回コミット前(unborn HEAD)は checkout main が失敗し得るためフォールバックする
|
|
178
|
+
if git rev-parse --verify HEAD >/dev/null 2>&1; then
|
|
179
|
+
git checkout "$MAIN_BRANCH"
|
|
180
|
+
git pull --ff-only 2>/dev/null || true
|
|
181
|
+
else
|
|
182
|
+
CURRENT_HEAD="$(git symbolic-ref --short -q HEAD 2>/dev/null || echo "")"
|
|
183
|
+
if [[ -z "$MAIN_BRANCH" ]]; then
|
|
184
|
+
MAIN_BRANCH="${CURRENT_HEAD:-main}"
|
|
185
|
+
fi
|
|
186
|
+
if [[ "$CURRENT_HEAD" != "$MAIN_BRANCH" ]]; then
|
|
187
|
+
git checkout -b "$MAIN_BRANCH" >/dev/null 2>&1 || true
|
|
188
|
+
fi
|
|
189
|
+
echo "Info: 初回コミット前のため pull はスキップします。"
|
|
190
|
+
fi
|
|
163
191
|
|
|
164
192
|
# ブランチ作成 + UC 仕様書作成(統合)
|
|
165
193
|
UC_ID_PATTERN="^${UC_ID_RE}$"
|
|
@@ -62,6 +62,7 @@ $ARGUMENTS
|
|
|
62
62
|
|
|
63
63
|
### 2. ブランチと仕様の作成
|
|
64
64
|
|
|
65
|
+
- `docs/01_憲章/憲章.md` は先に確定する。未コミット差分がある場合は、**AI が差分を確認してコミットメッセージを作成し、コミット完了後**に `uc-next-start.sh` を実行する。
|
|
65
66
|
- `.spec-runner/scripts/branch/uc-next-start.sh [UC-ID] "$SLUG" "$TITLE" "$CATEGORY" [--yes]`
|
|
66
67
|
- UC-ID は省略可(省略時は自動採番)。**SLUG / TITLE / CATEGORY は必須**(空文字禁止)。
|
|
67
68
|
- CATEGORY で配置先が決まる(カテゴリ名は日本語可)。**機能ごとに 1 回だけ**。
|