LAB / RULE-BASED ARCHITECTURE
作りたいものから、壊れにくい構成へ。
10個の条件をブラウザ内だけで照合し、フレームワーク、JS予算、記事管理、配信、品質ゲートを整理します。正解の自動決定ではなく、入力条件に基づく設計補助です。
RECOMMENDED ORBIT / balanced
Editorial Islands
検索意図の目安:編集と操作の両立(Editorial Islands)
読み物と操作を分離し、同じ情報モデルで接続する構成
- Architecture
- 完全静的出力を基盤に、状態を持つ機能だけをIslandへ分離
- Framework
- Astro + TypeScript
- JS budget
- 初期80KB gzip以内。本文とナビゲーションはJSなしで成立
- Content
- 小さなMarkdown/MDX collection。過剰なCMSは導入しない
- Images
- CSS/SVGを優先し、画像は寸法明示・WebP/AVIF・lazy loading
- Motion
- 短い状態遷移のみ。読解を待たせる常時演出は使わない
- Tests
- schema/unit、direct route、internal link、E2E、axe
- Delivery
- distとuploadをSHA-256で一致させ、FTP/GitHub Pagesへ
先に作るページ
- トップ
- 主要体験
- コンテンツ一覧
- Method
- 404
避ける実装
- 全文をReactで描画するSPA化
- Canvas/WebGLだけに情報を閉じる
- 出典・更新日・未確認範囲のないAI生成文をそのまま公開する
- 小規模なのにCMS/Functionsを先回りで導入
品質ゲート
- format / lint / strict typecheck
- content schema / internal link / direct route
- OG / sitemap / internal anchor
- keyboard / focus / reduced motion / no-JS
- distとuploadの同一性
- 主張・根拠・確認日・未確認範囲の記録
- FAIL時の公開停止と直前版への復旧手順
判定理由
静的配信ではtrailing slash・直接route・納品物一致を品質ゲートにします。
一人運用では依存数と復旧手順を小さく保ちます。
高いアクセシビリティ優先度はsemantic HTML、keyboard、focus、axeと手動確認へ反映します。
速度優先では初期JS予算と画像・font strategyを厳しくします。
保守性優先ではsingle source of truth、fixture、generator、docsを残します。
代替候補と採用条件
Astro static-first: 速度と配信の制約を優先する場合
Cloudflare/Vercel Functions: 個別のserver要件が確定した場合だけ
この結果から読む
- 静的な本体に操作だけを重ねる
結果の前提・判断基準を静的HTMLに残すための基本方針。
- 答えを終点にしないコンテンツ導線
読み物と操作を同じ情報モデルで接続します。
- 静的ホスティングでも成立するインタラクティブ構成
編集と操作を分けて静的配信へ渡す構成です。
結果をコピー・共有
入力はすべてブラウザ内のみで処理し、外部へ送信しません。条件はこのブラウザに保存され、次回の訪問でも復元できます(消去は「条件を初期値に戻す」)。
Markdownプレビュー
# Build Simulator 結果: Editorial Islands
> 読み物と操作を分離し、同じ情報モデルで接続する構成
**推奨プロファイル**: 編集と操作の両立(Editorial Islands)
## 入力条件
| 項目 | 値 |
| --- | --- |
| 主目的 | 複合型 |
| 更新頻度 | 月数回 |
| 記事量 | 10〜50 |
| インタラクション密度 | 標準 |
| 配信環境 | FTP静的ホスティング |
| 運用者 | 1人 |
| 重要度 (SEO/AX/速度/保守) | 4/5/5/5 |
## 構成
- **Architecture**: 完全静的出力を基盤に、状態を持つ機能だけをIslandへ分離
- **Framework**: Astro + TypeScript
- **JS budget**: 初期80KB gzip以内。本文とナビゲーションはJSなしで成立
- **Content**: 小さなMarkdown/MDX collection。過剰なCMSは導入しない
- **Images**: CSS/SVGを優先し、画像は寸法明示・WebP/AVIF・lazy loading
- **Motion**: 短い状態遷移のみ。読解を待たせる常時演出は使わない
- **Tests**: schema/unit、direct route、internal link、E2E、axe
- **Delivery**: distとuploadをSHA-256で一致させ、FTP/GitHub Pagesへ
## 判定理由
- 静的配信ではtrailing slash・直接route・納品物一致を品質ゲートにします。
- 一人運用では依存数と復旧手順を小さく保ちます。
- 高いアクセシビリティ優先度はsemantic HTML、keyboard、focus、axeと手動確認へ反映します。
- 速度優先では初期JS予算と画像・font strategyを厳しくします。
- 保守性優先ではsingle source of truth、fixture、generator、docsを残します。
## 関連リソース
- 静的な本体に操作だけを重ねる: /patterns/static-first-enhancement/
- 答えを終点にしないコンテンツ導線: /patterns/#content-routing
- 静的ホスティングでも成立するインタラクティブ構成: /notes/interactive-static-hosting/
## 証拠と停止条件
- 主張、対象範囲、根拠、確認日、未確認範囲を分けて記録する。
- ローカルのPASSは、公開サーバー・GSC・利用者指標の確認を意味しない。
- FAILなら公開作業を止め、直前版へ戻せることを確認する。
## 公開前チェックリスト
- [ ] タイトル・description・canonical・OG画像を静的生成物として確認した
- [ ] 本文・主要導線はJavaScriptなしでも読める
- [ ] keyboard・focus・reduced motion を確認した
- [ ] sitemap・RSS・内部リンクを検証した
- [ ] dist と upload の同一性を確認した
- [ ] 重要な主張ごとに根拠・確認日・未確認範囲を記録した
- [ ] FAIL時に公開を止め、直前版へ戻す手順を確認した
- [ ] FTP/GitHub Pages向けに trailing slash と直接URLを確認した
- [ ] axeで自動チェックを通し、見出し順・ラベル・roleを確認した
- [ ] 構造化データ(Article/Breadcrumb)を可視本文と一致させた
- [ ] fixture・generator・docsを残し、復旧手順を小さく保った
- [ ] 採用プロファイル「Editorial Islands(編集と操作の両立(Editorial Islands))」の品質ゲートを通した
---
_BUILD ORBIT Build Simulatorで生成(入力はブラウザ内のみ、外部送信なし)_