cosense-site-kit は「Cosense API を内部 API として扱う」前提で設計されています。Cosense は仕様変更があり得るため、依存範囲を core に閉じ込め、テーマや Astro 層は安定した中間データモデルだけを参照します。

データの流れ

Cosense public project
   │
   │  list + 差分 fetch(cache: .cosense-cache/)
   ▼
@cosense-site-kit/core
   • fetch / parse / normalize / validate
   • publish フィルタ
   • slug + 内部リンク解決 + backlinks
   • .site の site.yaml を SiteStructure にパース
   │
   ▼
バージョン付き中間 JSON   ← 公開コントラクト(schemaVersion: "1")
   │
   ▼
@cosense-site-kit/astro      (Content Loader + Integration)
   │
   ▼
@cosense-site-kit/theme-*    (Astro Integration がルートを inject)
   │
   ▼
静的サイト → CDN (Cloudflare Workers Static Assets / GitHub Pages)

設計の核となるルール

  • Cosense API の知識は core/src/source/cosense/ と core/src/parse/scrapbox.ts だけに置く
  • テーマ・Astro・CLI は中間モデルしか触らない
  • 中間モデルは schemaVersion: "1" を持ち、将来の v2 と共存できる構造になっている

関連