環境設定ファイルを追加し、make-json.shにエラーハンドリングとJSONスキーマのバリデーションを追加。新しいスクリプトpromote-manifest.shを作成し、マニフェスト生成のプロセスを強化。README.mdを更新し、プロンプト生成の構造を明確化。シーンとスタイルの登録ルールを整理し、スキーマファイルを追加。
This commit is contained in:
41
make-json.sh
Normal file → Executable file
41
make-json.sh
Normal file → Executable file
@@ -1,24 +1,29 @@
|
||||
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
TOKEN="578edf8a8328fb37d6c32f56eb1450622db3492a"
|
||||
BASE="https://git.sunamura-llc.com"
|
||||
OWNER="openRepo"
|
||||
REPO="AI-ART"
|
||||
BRANCH="main"
|
||||
ROOT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
SCHEMA="$ROOT_DIR/schema/prompt.schema.json"
|
||||
OUT_DIR="$ROOT_DIR/output"
|
||||
OUT_JSON="$OUT_DIR/prompt.json"
|
||||
|
||||
OUT="manifest.json"
|
||||
mkdir -p "$OUT_DIR"
|
||||
|
||||
images_json=$(curl -s \
|
||||
-H "Authorization: token ${TOKEN}" \
|
||||
"${BASE}/api/v1/repos/${OWNER}/${REPO}/contents/images")
|
||||
echo "[INFO] Generating JSON via AI (paste result)..."
|
||||
echo "Paste JSON below. End with Ctrl+D:"
|
||||
JSON_CONTENT=$(cat)
|
||||
|
||||
echo "{
|
||||
\"repo\": \"${OWNER}/${REPO}\",
|
||||
\"branch\": \"${BRANCH}\",
|
||||
\"readme\": \"${BASE}/${OWNER}/${REPO}/raw/branch/${BRANCH}/README.md\",
|
||||
\"task_template\": \"${BASE}/${OWNER}/${REPO}/raw/branch/${BRANCH}/prompts/task_template.md\",
|
||||
\"rules\": \"${BASE}/${OWNER}/${REPO}/raw/branch/${BRANCH}/.cursorrules\",
|
||||
\"images\": $(echo "$images_json" | jq '[.[] | {name: .name, url: .download_url}]')
|
||||
}" > "${OUT}"
|
||||
echo "$JSON_CONTENT" > "$OUT_JSON"
|
||||
|
||||
echo "✔ manifest.json generated"
|
||||
echo "[INFO] Validating JSON schema..."
|
||||
|
||||
if ! command -v ajv >/dev/null 2>&1; then
|
||||
echo "[ERROR] ajv not found. Install with:"
|
||||
echo " npm install -g ajv-cli"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ajv validate -s "$SCHEMA" -d "$OUT_JSON" --strict=true
|
||||
|
||||
echo "[OK] JSON is valid and schema-compliant."
|
||||
echo "[DONE] Output saved to: $OUT_JSON"
|
||||
|
||||
Reference in New Issue
Block a user