@tyhld/conductor 0.12.111 → 0.12.112
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
package/scripts/update-guard.sh
CHANGED
|
@@ -1199,14 +1199,17 @@ if [[ "$SYNC_ONLY" == "1" ]]; then
|
|
|
1199
1199
|
fi
|
|
1200
1200
|
|
|
1201
1201
|
# ─── ④ 各現場の権限ルールを部分マージで更新 ─────────────────────────────────
|
|
1202
|
+
# ★実際に書き換えた現場だけを覚えておく(この下の④-b が「コミットが要るリポ」を名指しする)。
|
|
1203
|
+
wrote_sites=()
|
|
1202
1204
|
for proj in "${targets[@]}"; do
|
|
1203
1205
|
dst="$proj/.claude/settings.json"
|
|
1204
1206
|
if [[ ! -f "$dst" ]]; then
|
|
1205
1207
|
warn " スキップ(settings.json なし): $proj"
|
|
1206
1208
|
continue
|
|
1207
1209
|
fi
|
|
1210
|
+
rc=0
|
|
1208
1211
|
APPLY="$APPLY" \
|
|
1209
|
-
python3 - "$dst" "$SETTINGS_SRC" "$SAMPLE_SETTINGS" <<'PYEOF'
|
|
1212
|
+
python3 - "$dst" "$SETTINGS_SRC" "$SAMPLE_SETTINGS" <<'PYEOF' || rc=$?
|
|
1210
1213
|
import json, os, shutil, sys, time
|
|
1211
1214
|
|
|
1212
1215
|
dst_path, src_path, sample_path = sys.argv[1], sys.argv[2], sys.argv[3]
|
|
@@ -1448,7 +1451,16 @@ with open(tmp, "w", encoding="utf-8") as f:
|
|
|
1448
1451
|
f.write("\n")
|
|
1449
1452
|
os.replace(tmp, dst_path) # 置換は原子的=途中で壊れた settings.json を残さない
|
|
1450
1453
|
print(f"[update-guard] 更新しました(バックアップ: {backup})")
|
|
1454
|
+
# ★実際に書き換えた回だけ 10 で終わる(呼び元が「コミットが要るリポ」を名指しするため)。
|
|
1455
|
+
sys.exit(10)
|
|
1451
1456
|
PYEOF
|
|
1457
|
+
# 終わり方の読み方: 0=変更なし/見るだけ、10=実際に書き換えた、それ以外=想定外の失敗。
|
|
1458
|
+
# 想定外の失敗では、今までどおり(set -e と同じ)そこで止まる=黙って先へ進まない。
|
|
1459
|
+
if [[ "$rc" -eq 10 ]]; then
|
|
1460
|
+
wrote_sites+=("$proj")
|
|
1461
|
+
elif [[ "$rc" -ne 0 ]]; then
|
|
1462
|
+
exit "$rc"
|
|
1463
|
+
fi
|
|
1452
1464
|
done
|
|
1453
1465
|
|
|
1454
1466
|
echo
|
|
@@ -1457,3 +1469,36 @@ if [[ "$APPLY" == "1" ]]; then
|
|
|
1457
1469
|
else
|
|
1458
1470
|
info "確認のみで終了しました。適用するには APPLY=1 を付けて再実行してください。"
|
|
1459
1471
|
fi
|
|
1472
|
+
|
|
1473
|
+
# ─── ④-b 書き換えたリポのうち「コミットが要る」物を名指しで知らせる ──────────────
|
|
1474
|
+
# 【なぜ要るか(実地 2026-10-06)】④ は現場の .claude/settings.json を「禁止の一覧が強い版」へ
|
|
1475
|
+
# 書き換えるが、それを git に入れる所がだれの仕事にもなっていなかった。結果、6つのリポで
|
|
1476
|
+
# 強い設定が git に入らないまま放置された(いちばん長い utatane-backend は約2か月半・git の版は
|
|
1477
|
+
# 禁止 11 件のまま)。放置のあいだ、ほかのPCとクラウドの作業場には弱い設定が配られ、職人の
|
|
1478
|
+
# 合流のたびに誤った「失敗」が出た。=書き換えた直後に名指しで出し、人が CC1 へ渡せるようにする。
|
|
1479
|
+
# 【決め】
|
|
1480
|
+
# ・出すのは「実際に書き換えた回」だけ。変更なしの回・見るだけの回は1行も出さない(表示を変えない)。
|
|
1481
|
+
# ・挙げるのは git が追跡している .claude/settings.json を持つリポだけ。追跡されていない物(?? だけ)は
|
|
1482
|
+
# コミットが要らないので挙げない。
|
|
1483
|
+
# ・確かめは読むだけの git(ls-files)。リポの中身・git の状態を1つも変えない。
|
|
1484
|
+
# ・git が使えない/リポでない置き場は黙って飛ばす(台本を落とさない)。
|
|
1485
|
+
# ★最後に出すのは、人の目に最後まで残るため(この下に別の行を足さない)。
|
|
1486
|
+
if [[ ${#wrote_sites[@]} -gt 0 ]]; then
|
|
1487
|
+
needs_commit=()
|
|
1488
|
+
for proj in "${wrote_sites[@]}"; do
|
|
1489
|
+
# 読むだけ。リポでない置き場・git が無い機では非ゼロで返るので、黙って外れる。
|
|
1490
|
+
if git -C "$proj" ls-files --error-unmatch -- .claude/settings.json >/dev/null 2>&1; then
|
|
1491
|
+
needs_commit+=("$proj")
|
|
1492
|
+
fi
|
|
1493
|
+
done
|
|
1494
|
+
if [[ ${#needs_commit[@]} -gt 0 ]]; then
|
|
1495
|
+
echo
|
|
1496
|
+
info "★コミットが要るリポがあります(git が追跡している .claude/settings.json を書き換えました)"
|
|
1497
|
+
for proj in "${needs_commit[@]}"; do
|
|
1498
|
+
info " - $(basename "$proj") ($proj)"
|
|
1499
|
+
done
|
|
1500
|
+
info " この変更は戻さない(番人の禁止の一覧が強くなった知らせ)。そのリポの職人の便でコミットする。"
|
|
1501
|
+
info " git checkout で戻すと守りが弱くなる。"
|
|
1502
|
+
info " → この一覧を CC1 に伝えてください(コミットの便を出してもらいます)。"
|
|
1503
|
+
fi
|
|
1504
|
+
fi
|
|
@@ -121,6 +121,7 @@ description: 采配くんの便(プロンプト末尾に CONDUCTOR_JOB:<id>
|
|
|
121
121
|
- **電話は自由。** 外への通信(npm / GitHub / API / ドキュメント取得など)は許可済みなので、`Network request outside of sandbox` は出ない。**通信のために止まらない・人を待たない**。最後まで自走して完了まで行く。
|
|
122
122
|
- **金庫は禁止。** 秘密の持ち出し(`curl -d @.env` / `cp .env` / `tar ~/.ssh` / `base64 .env` / `echo $DATABASE_URL` など)は**番人が今までどおり止める**。通信が自由になったこととは**別の仕組み**なので、「通信が許可されたから秘密も送れる」は成り立たない。本番DB・secret・`.env`・`hooks`・`.tyhld`・`.ssh` への書き込み禁止もそのまま。
|
|
123
123
|
- **それでも塞がれたら回避しない。** `curl: (56) CONNECT tunnel failed, response 403` のように通信が塞がれたときは、**意図的に閉じてある接続先**(例: 本番DBへの直結)か、設定がその機体にまだ届いていないかのどちらか。**別経路を探さず、そこで止めて報告する**(人の手番=`APPLY=1 bash scripts/update-guard.sh` → 職人を再起動)。
|
|
124
|
+
- ★**この1行(`APPLY=1 bash scripts/update-guard.sh`)を人が流したあとに `★コミットが要るリポがあります` の一覧が出たら、その一覧を CC1 に伝える**(コミットの便を出してもらう)。出た変更は戻さない(`git checkout` で戻すと守りが弱くなる)。
|
|
124
125
|
13. **使い捨てファイルはリポジトリの中に作らない(えふさん決定 2026-09-03/えふさん確定 2026-10-02・判断6 で後片付けの形を改めた)**
|
|
125
126
|
- **実機検品・検証用の使い捨てファイル(HTML・画像・ログ等)は、リポジトリの中に作らない。`/tmp/claude-1000/` に置く。**
|
|
126
127
|
- **リポジトリの中(直下を含む)に作ってしまったときの後片付け(えふさん確定 2026-10-02・判断6)。自分で作った物に限り、`-f` を付けない `rm -r` と実在のパスの名指しで消し、消した物を報告に書く。**
|