diff --git a/_template-minimal/index.html b/_template-minimal/index.html
index 9344666b..de86e24f 100644
--- a/_template-minimal/index.html
+++ b/_template-minimal/index.html
@@ -5,10 +5,21 @@
diff --git a/_template-minimal/sw.js b/_template-minimal/sw.js
index 734d1975..afbbd317 100644
--- a/_template-minimal/sw.js
+++ b/_template-minimal/sw.js
@@ -6,9 +6,8 @@ const STATIC = ['/', '/index.html', '/manifest.json', '/logo.png'];
self.addEventListener('install', e => {
e.waitUntil(
caches.open(CACHE).then(c => c.addAll(STATIC))
- // skipWaiting() は意図的に呼ばない
- // → updatefound イベントで UI 側からユーザーに通知する方式を採用
);
+ self.skipWaiting();
});
self.addEventListener('activate', e => {
diff --git a/create-app.sh b/create-app.sh
index 7728e58f..18ffe56d 100644
--- a/create-app.sh
+++ b/create-app.sh
@@ -38,7 +38,7 @@ echo ""
# --- Step 1: テンプレートコピー & 置換 ---
echo "Step 1: テンプレートをコピーして置換..."
-cp -r "$SCRIPT_DIR/_template" "$TARGET_DIR"
+cp -r "$SCRIPT_DIR/_template-minimal" "$TARGET_DIR"
# sed で 3 変数を一括置換(macOS / Linux / Git Bash 対応)
find "$TARGET_DIR" -type f \( -name "*.html" -o -name "*.json" -o -name "*.js" -o -name "*.md" \) | while IFS= read -r f; do
@@ -107,6 +107,86 @@ echo "Step 7: 初回本番デプロイをトリガー..."
git commit --allow-empty -m "ci: trigger initial Vercel deployment"
npm run deploy
+# --- Step 8: Dashboard 自動更新 ---
+echo ""
+echo "Step 8: Dashboard を自動更新..."
+
+DASHBOARD_DIR="$SCRIPT_DIR/posimai-dashboard"
+ROADMAP_DIR="$SCRIPT_DIR/posimai-roadmap"
+TODAY=$(date +%Y-%m-%d)
+
+# projects.json に追加
+node -e "
+const fs = require('fs');
+const f = '$DASHBOARD_DIR/src/data/projects.json';
+const d = JSON.parse(fs.readFileSync(f, 'utf8'));
+const already = d.projects.some(p => p.id === '$APP_ID');
+if (!already) {
+ d.projects.unshift({
+ id: '$APP_ID',
+ name: '$APP_NAME',
+ category: 'micro',
+ status: 'beta',
+ description: '$APP_DESC',
+ techStack: ['HTML', 'CSS', 'JavaScript', 'PWA'],
+ links: { github: 'https://github.com/$GITHUB_ORG/$APP_ID' },
+ pwa: true,
+ themeColor: '#0D0D0D',
+ accentColor: '#6EE7B7'
+ });
+ d.lastUpdated = '$TODAY';
+ fs.writeFileSync(f, JSON.stringify(d, null, 4));
+ console.log(' projects.json: 追加完了');
+} else {
+ console.log(' projects.json: 既存エントリあり、スキップ');
+}
+" || echo " [WARN] projects.json の更新に失敗しました"
+
+# timeline/page.tsx に launch エントリを追加
+TIMELINE_FILE="$DASHBOARD_DIR/src/app/timeline/page.tsx"
+if grep -q "\"$APP_ID\"" "$TIMELINE_FILE" 2>/dev/null; then
+ echo " timeline/page.tsx: 既存エントリあり、スキップ"
+else
+ # "const EVENTS: TimelineEvent[] = [" の直後に挿入
+ sed -i "s/const EVENTS: TimelineEvent\[\] = \[/const EVENTS: TimelineEvent[] = [\n { date: \"$TODAY\", type: \"launch\", app: \"$APP_ID\", title: \"$APP_NAME リリース\", desc: \"$APP_DESC\" },/" \
+ "$TIMELINE_FILE" \
+ && echo " timeline/page.tsx: 追加完了" \
+ || echo " [WARN] timeline/page.tsx の更新に失敗しました"
+fi
+
+# roadmap.json に追加
+node -e "
+const fs = require('fs');
+const f = '$ROADMAP_DIR/roadmap.json';
+const d = JSON.parse(fs.readFileSync(f, 'utf8'));
+if (!d.apps) d.apps = [];
+const already = d.apps.some(a => a.id === '$APP_ID');
+if (!already) {
+ d.apps.push({ id: '$APP_ID', tasks: [] });
+ fs.writeFileSync(f, JSON.stringify(d, null, 2));
+ console.log(' roadmap.json: 追加完了');
+} else {
+ console.log(' roadmap.json: 既存エントリあり、スキップ');
+}
+" || echo " [WARN] roadmap.json の更新に失敗しました"
+
+# Dashboard と Roadmap をデプロイ
+echo ""
+echo " Dashboard をデプロイ中..."
+cd "$DASHBOARD_DIR"
+git add src/data/projects.json src/app/timeline/page.tsx && \
+ git commit -m "feat: $APP_NAME をダッシュボードに追加" && \
+ npm run deploy && \
+ echo " Dashboard デプロイ完了" || echo " [WARN] Dashboard デプロイに失敗しました"
+
+echo ""
+echo " Roadmap をデプロイ中..."
+cd "$ROADMAP_DIR"
+git add roadmap.json && \
+ git commit -m "feat: $APP_NAME を roadmap に追加" && \
+ npm run deploy && \
+ echo " Roadmap デプロイ完了" || echo " [WARN] Roadmap デプロイに失敗しました"
+
echo ""
echo "========================================"
echo " 完了! $APP_NAME"
@@ -116,10 +196,14 @@ echo " ディレクトリ : $TARGET_DIR"
echo " Gitea : http://100.76.7.3:3000/mai/$APP_ID"
echo " GitHub : https://github.com/$GITHUB_ORG/$APP_ID"
echo ""
-echo " 次の必須作業(Dashboard 更新):"
-echo " 1. posimai-dashboard/src/data/projects.json にカードを追加"
-echo " 2. ecosystem/page.tsx の NODES / EDGES に追加"
-echo " 3. timeline/page.tsx の EVENTS に追加"
-echo " 4. access/page.tsx の APPS に追加"
-echo " 5. Dashboard をデプロイ: cd posimai-dashboard && npm run deploy"
+echo " 自動完了済み:"
+echo " - projects.json にカード追加"
+echo " - timeline/page.tsx に launch エントリ追加"
+echo " - roadmap.json に追加"
+echo " - Dashboard / Roadmap デプロイ"
+echo ""
+echo " 手動で追加が必要なもの:"
+echo " 1. apps/page.tsx の projectIds に追加(カテゴリ判断が必要)"
+echo " 2. ecosystem/page.tsx の NODES / EDGES に追加(接続関係の判断が必要)"
+echo " 3. logo.png を配置後: cd $TARGET_DIR && git add logo.png && git commit -m 'feat: logo 追加' && npm run deploy"
echo ""