尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Curated, searchable directory of Drosophila connectome / fly-brain projects (EN/JA)
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
世界中のハエ脳(Drosophila コネクトーム・シミュレーション・身体モデル・ツール・バイラルデモ)を ジャンル別に一覧・検索できる、広告枠付きの静的サイト。英語(既定)と日本語(/ja/)の 2 言語。 • 仕様: docs/spec.md(要件 R-01〜R-10 と受け入れ条件。この文書が正) • スタック: Astro 7(静的出力)・Fuse.js(クライアント検索)・Vitest・Playwright • 公開先: Vercel(純静的、アダプタ不要) 開発は 仕様 → 失敗するテスト → 実装 の順(TDD)。仕様を変えるときは docs/spec.md を先に直す。檢視完整 README ↗
世界中のハエ脳(Drosophila コネクトーム・シミュレーション・身体モデル・ツール・バイラルデモ)を
ジャンル別に一覧・検索できる、広告枠付きの静的サイト。英語(既定)と日本語(/ja/)の 2 言語。
docs/spec.md(要件 R-01〜R-10 と受け入れ条件。この文書が正)npm install
npm run dev # http://localhost:4321
npm test # ユニット + コンポーネント + データ検証
npm run check # astro sync && astro check && vitest
npm run build
npm run test:dist # dist/ の検証(build 後)
npm run test:e2e # Playwright(初回は npx playwright install chromium)
npm run verify # check → build → test:dist → test:e2e
npm run linkcheck # dist/ の内部リンク
開発は 仕様 → 失敗するテスト → 実装 の順(TDD)。仕様を変えるときは docs/spec.md を先に直す。
src/data/projects.json に 1 要素を足す。キーとルールは docs/spec.md の R-01。
sourceRefs に入れるdescription_en(60〜600 文字)と description_ja(40〜600 文字)は自分の言葉で。README や記事の転載はしないdatasets には category: "connectome" のエントリの id だけを入れるcategory: "crypto" は URL に紹介コード風のクエリを含めないnpm run check を通す(不正なデータはここで落ちる)npm run build && npm run test:distnode scripts/fetch-x-media.mjs # url が X の投稿のエントリに image / imageKind / imageCredit を書く(既に image があれば触らない)
node scripts/fetch-x-media.mjs --force
取得元は X の配信 CDN(公式埋め込みウィジェットが読む JSON)。保存するのは pbs.twimg.com の画像 URL だけで、詳細ページでは投稿を X 公式ウィジェットで埋め込む。
npm run refresh-stars # GITHUB_TOKEN があれば使う
GitHub の repoUrl を持つエントリの stars / starsUpdatedAt だけを書き換える。結果をコミットする。
.env.example を .env にコピーして設定する(Vercel では Project Settings → Environment Variables)。
| 変数 | 用途 |
|---|---|
PUBLIC_SITE_URL | canonical / sitemap / RSS の起点。独自ドメイン取得後に設定 |
PUBLIC_ADSENSE_CLIENT | ca-pub-…。未設定なら本番では広告関連のマークアップを一切出さない(dev では破線の枠を表示) |
PUBLIC_ADSENSE_SLOT_LEADERBOARD / _INFEED / _SIDEBAR | 各広告ユニットの slot ID |
PUBLIC_ADSENSE_INFEED_LAYOUT_KEY | in-feed ユニットの layout key |
PUBLIC_AD_INQUIRY_URL | 任意。https の URL(Google フォーム)。AdSense 未設定の間、空いた広告枠に「広告募集中」を出してここへリンクする(R-15)。未設定なら枠は空のまま |
PUBLIC_AD_INQUIRY_URL_JA | 任意。/ja/ で使う日本語フォーム。未設定なら上の URL にフォールバックする。英語ページはこちらを見ない |
PUBLIC_GITHUB_REPO | owner/repo。投稿ページの Issue リンク先。未設定だと OWNER/fly-brain-hub というプレースホルダになる |
PUBLIC_CONTACT_EMAIL | 任意。設定すると Contact ページにメールアドレスを出す |
PUBLIC_VERCEL_ANALYTICS | 1 で Vercel Web Analytics のスクリプトを全ページ(404 除く)に出す。Vercel 側で vercel project web-analytics を実行して有効化しておく。Cookie なし |
PUBLIC_GA_MEASUREMENT_ID | 任意。G-… を入れると GA4 も有効。EU/UK/CH は Consent Mode の既定 denied |
Vercel ダッシュボード → プロジェクト fly-brain-hub → Analytics タブ。ページ別・参照元別・国別・端末別が見られる。
Claude Code からは Vercel 連携の get_web_analytics(count / aggregate)で同じデータを取得できる。
全ページが document.modelContext.registerTool() で 4 つのツールを宣言する
(search-projects / get-project / list-categories / list-datasets)。
実体は src/lib/webmcp.ts(純関数)と src/components/WebMcpTools.astro(機能検出と登録のみ)。
/search-index.json を初回呼び出し時に 1 回取得して使い回す。取得失敗時は
{ ok: false, reason: 'index-unavailable' } を返して投げないdocument.modelContext。navigator.modelContext ではない(解説記事に誤りが多い。
CG ドラフトの IDL は partial interface Document)動作確認は tests/e2e/webmcp.spec.ts が document.modelContext をスタブして行う。
審査が通るまでの間は PUBLIC_AD_INQUIRY_URL / PUBLIC_AD_INQUIRY_URL_JA に Google フォームの URL を入れると、
空いた枠に「広告募集中」が出る(R-15)。フォームは日英 2 本作成済み(.env.example に URL あり。
編集は Google ドライブの「Fly Brain Hub 広告掲載のお問い合わせ」「Fly Brain Hub — Advertising Enquiry」から)。
AdSense を有効にすると枠は実広告に戻り、「広告募集中」は自動的に消える。
*.vercel.app のままでは AdSense 審査に通らない)PUBLIC_SITE_URL と PUBLIC_GITHUB_REPO を設定して再デプロイ。public/robots.txt の Sitemap 行もドメインに合わせるPUBLIC_ADSENSE_* を設定して再デプロイ。EU 向けの同意メッセージは AdSense 側の CMP を有効化するsrc/data/projects.json 唯一の編集ファイル
src/content.config.ts file() ローダー + zod スキーマ(src/lib/schema.ts)
src/lib/taxonomy.ts カテゴリ・データセット ID と EN/JA ラベル
src/lib/{projects,ads,seo}.ts 純粋関数(ユニットテスト対象)
src/lib/webmcp.ts WebMCP のツール定義と絞り込み(R-14)
src/lib/sort.ts 一覧の並べ替え(R-16)
src/i18n/ UI 文言と localePath / otherLocalePath
src/layouts/BaseLayout.astro hreflang / canonical / OG / JSON-LD / AdSense ローダー
src/components/ AdSlot, ProjectCard, ProjectGrid, SearchProjects, WebMcpTools, …
src/components/pages/ ページ本体(lang prop を受ける)
src/pages/ EN ルート。src/pages/ja/ は同じ構成の薄いシェル
tests/unit tests/dist tests/e2e
scripts/refresh-stars.mjs
.github/ISSUE_TEMPLATE/submit-project.yml 投稿用テンプレート