chore: D22 落地——docs/SDD/wiki/CLAUDE.md 進 repo(Gitea private 預設全 push)

頂層 D22 決策(leo 2026-07-03 拍板):推什麼由開發環境歸屬決定,
Gitea private=除機敏值/build 產物/.github 外全 push。
解 T1.5 卡點:雲端工人 clone 拿得到 credential-store-migration.md,可就地改寫 SDD。
機敏掃描兩輪通過(新增 189 檔約 2.1MB,node_modules/dist/wasm 照舊排除)。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
uncle6me-web
2026-07-03 07:13:15 +08:00
parent c830150da1
commit 5d00e71275
190 changed files with 39486 additions and 14 deletions
+98
View File
@@ -0,0 +1,98 @@
#!/bin/bash
# Harness: Cold 啟動環境檢查
# 用途:init 完成後強制檢查環境就緒,不靠提醒,違反條件直接擋住(exit 2)
# 由 acr init 末尾調用
set -e
REPO_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || echo ".")"
ARCRUN_CONFIG="${HOME}/.arcrun/config.yaml"
# 顏色
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
FAILED=0
echo -e "${YELLOW}🔍 冷啟動環境檢查${NC}"
echo ""
# 檢查 1: config.yaml 存在
if [ ! -f "$ARCRUN_CONFIG" ]; then
echo -e "${RED}❌ 缺少 $ARCRUN_CONFIG${NC}"
echo " 執行:acr init"
FAILED=1
else
echo -e "${GREEN}✓ config.yaml 存在${NC}"
fi
# 檢查 2: api_key 有值
if grep -q "^api_key:" "$ARCRUN_CONFIG" 2>/dev/null; then
api_key=$(grep "^api_key:" "$ARCRUN_CONFIG" | cut -d' ' -f2)
if [ -z "$api_key" ] || [ "$api_key" = "null" ]; then
echo -e "${RED}❌ api_key 未設${NC}"
FAILED=1
else
echo -e "${GREEN}✓ api_key 已設${NC}"
fi
else
echo -e "${RED}❌ config.yaml 缺少 api_key${NC}"
FAILED=1
fi
# 檢查 3: .mcp.json 存在且指向自己(self-hosted 用)
if grep -q "mode.*self-hosted" "$ARCRUN_CONFIG" 2>/dev/null; then
if [ ! -f ".mcp.json" ]; then
echo -e "${RED}❌ .mcp.json 缺失(self-hosted 必需)${NC}"
echo " 執行:acr init 會自動生成"
FAILED=1
else
# 檢查 mcp.json 是否指向自己(不是官方 URL)
if grep -q "mcp.arcrun.dev" ".mcp.json" && ! grep -q "workers.dev" ".mcp.json"; then
echo -e "${RED}❌ .mcp.json 指向官方 mcp.arcrun.dev(應指向自己的 worker${NC}"
FAILED=1
else
echo -e "${GREEN}✓ .mcp.json 配置正確${NC}"
fi
fi
fi
# 檢查 4: acr 能執行
if ! command -v acr &>/dev/null; then
echo -e "${RED}❌ acr 未裝或不在 PATH${NC}"
echo " 執行:npm i -g arcrun"
FAILED=1
else
echo -e "${GREEN}✓ acr 可執行${NC}"
fi
# 檢查 5: D1 database 存在(如果 self-hosted
if grep -q "mode.*self-hosted" "$ARCRUN_CONFIG" 2>/dev/null; then
if grep -q "d1_database_id" "$ARCRUN_CONFIG" 2>/dev/null; then
db_id=$(grep "d1_database_id" "$ARCRUN_CONFIG" | cut -d' ' -f2)
if [ -z "$db_id" ]; then
echo -e "${RED}❌ D1 database_id 未設${NC}"
echo " 執行:acr init 會建立 D1,或手動設定 d1_database_id"
FAILED=1
else
echo -e "${GREEN}✓ D1 database_id 已設${NC}"
fi
fi
fi
echo ""
if [ $FAILED -eq 0 ]; then
echo -e "${GREEN}✅ 環境就緒${NC}"
exit 0
else
echo -e "${RED}❌ 環境檢查失敗${NC}"
echo ""
echo "修復步驟:"
echo "1. 檢查 ~/.arcrun/config.yaml 是否完整"
echo "2. 若 self-hosted,確認 .mcp.json 指向自己的 mcp worker(不是官方)"
echo "3. 若缺少 D1,重跑 acr init --self-hosted --account-id=... --api-token=..."
echo ""
exit 2
fi