複数サイトを運営すると、知見は増えます。しかし「前にも似た診断を作った」「どこかでupload同期に失敗した」という記憶のままでは、次の制作で検索できず、比較できず、検証にも使えません。
解決策は、すべてを共通コンポーネントにすることではありません。サイトごとの違いを残したまま、判断の単位だけを共通データにすることです。
先に結論:経験を検索できる判断データへ分ける
記憶やチャットをそのまま保存するのではなく、目的、対象、問題、導線、技術、失敗、学びを分離します。Project Atlasが参照するのは、作品を褒める文章ではなく、次の企画で比較・検証できる判断材料です。
記憶とチャットだけでは再利用しにくい
会話ログは背景を豊かに残せますが、後から「診断型で、FTP配信で、結果ページを持つProject」を一覧するには向きません。READMEも一つのリポジトリを理解するには役立ちますが、複数Projectを横断して比べる構造ではありません。
再利用したい情報を、まず六つに分けます。
- 何のために作ったか。
- 誰が使うか。
- どの問題を解くか。
- どの導線と操作を使ったか。
- どの技術と配信制約があったか。
- 何を学び、何に失敗したか。
| 残し方 | 強み | 弱み |
|---|---|---|
| 記憶 | 背景や直感を残せる | 検索・比較・再現が難しい |
| チャット | 判断の経緯を豊富に残せる | 同じ条件のProjectを一覧しにくい |
| README | 一つのリポジトリの導入に向く | 複数サイトを横断しにくい |
| Project data | 統制語彙で比較・検証できる | 初期入力と更新ルールが必要 |
Project dataへ移すときも、チャット全文を公開データへ貼り付けません。個人情報、APIキー、Cookie、ローカルパス、非公開URL、未確認の数値は入れず、公開できる要約と確認日だけを残します。
完成画面のスクリーンショットだけでは、6番が残りません。次の制作へ効くのは、採用理由と不採用理由です。
Projectデータの最小形
BUILD ORBITでは、Projectを次のような型で持ちます。
interface Project {
slug: string;
title: string;
summary: string;
url?: string;
kind: ProjectKind[];
status: "active" | "maintenance" | "draft" | "archived";
audience: string[];
problems: string[];
interactionPatterns: string[];
contentPatterns: string[];
technologies: string[];
lessons: string[];
relatedProjectSlugs: string[];
lastReviewed: string;
}
数値実績を必須にしていません。PVや収益が公開できないProjectでも、設計パターンと学びは比較できるためです。確認できないURLは推測で埋めず、status: draftにします。
lastReviewedは、Projectが更新された日ではなく、Atlasへ載せた情報を最後に確認した日です。外部URLや現状が変わる可能性を明示できます。
kind、status、interactionPatterns、contentPatternsのような統制語彙は、表記ゆれを減らし、ProjectsやPatternsのfilterとreverse indexを同じ値で動かすために使います。新しい言葉を追加するときは、既存語彙で表せない差分か、単なる言い換えかを先に確認します。
失敗を別欄に追いやらない
成功例だけをデータ化すると、同じ失敗を繰り返します。失敗は反省文ではなく、条件と症状と回避策に分けます。
条件: distを手動でuploadへコピーする運用
症状: 古いhash assetとsitemapが残った
原因: 削除と一致確認が手順に含まれていなかった
回避: prepare:uploadとdelivery hash checkを一つのverifyへ含める
この形なら、次のFTP型Projectで品質ゲートへ変換できます。単なる「気をつける」ではなく、再発条件を自動で止められます。
検証では、関連slugの存在、自分自身を参照していないこと、statusと公開URLの整合、語彙の許可値、dist/とupload/のhash一致をtestします。文字列が書けたことではなく、データが既存の表示・filter・内部リンクへ安全につながることを確認します。
共通コンポーネント化との違い
共通コンポーネントは、同じ組織、同じブランド、同じ更新周期で効果を発揮します。異なるサイトへ無理に同じカードやHeaderを配ると、世界観と情報密度まで均一になります。
共通化する対象を三層に分けます。
| 層 | 再利用するもの | 再利用しないもの |
|---|---|---|
| 判断 | Project型、品質ゲート、公開前チェック | サイト固有の優先順位 |
| 実装 | link checker、upload同期、schema検証 | ブランド固有のレイアウト |
| 表現 | focus token、motion preferenceの原則 | 色、カード形状、ヒーロー構成 |
コードを共有しなくても、判断と検証は共有できます。この方が、サイトごとの声を守りながら制作速度を上げやすくなります。
Atlasへ接続すると見えるもの
ProjectデータをAtlasで並べると、個別READMEでは見えなかった偏りが見えます。
- 診断型が増えているのに、結果後の導線が共通化されていない。
- 安全系コンテンツでは、強い断定より段階別行動が有効だった。
- 計算ツールでは、結果と前提条件を同じ視界に置く必要がある。
- 記事サイトでは、検索語より困っている状態から入口を作ると回遊しやすい。
これらは架空の成果数値ではなく、実装と運用から得た設計上の経験則です。外部事実と混ぜず、「このProject群での学び」として扱います。
Projectデータをページ改善へ戻す
データを集計して終えると、数字が新しい飾りになります。改善へ戻すときは、1つの傾向を1つのページ責務と1つの検証へ結び付けます。現在の30件では、静的配信・生成・HTMLのいずれかを持つProjectが29件、公開リポジトリが23件、関連Projectの辺が35本あります。これは市場の割合ではなく、今回照合したデータのスナップショットです。
| 観測した値 | ページへ返す問い | 返す先と確認 |
|---|---|---|
| 静的基盤が29/30 | 何をHTMLに残せば操作なしでも目的が成立するか | Static-First Patternとno-JS確認 |
| リポジトリが23/30 | どの主張を実コードで再確認できるか | All ProjectsのGitHub有無とケーススタディの確認commit |
| 関連辺が35本 | 作品を見た後に、どの判断へ移れるか | Atlas、Pattern、次のNoteの役割分担 |
| 30/30にlessonがある | 成果ではなく、次回の採用・回避条件へ変換できるか | Projectのlessons、Quality Gate、要件テンプレート |
この対応表は「静的だから優れている」「関連が多いほど回遊する」といった結論を証明しません。観測値から次に読む場所を選び、実装・本文・検証の三つが同じ判断を指しているかを確認するための地図です。
次の企画へ使う手順
新しいサイトを始めるとき、ゼロからアイデアを出す前にAtlasを次の順で見ます。
- 対象ユーザーとproblemが近いProjectを探す。
- interaction patternが目的に合うか比べる。
- 同じ配信環境で起きた失敗を確認する。
- 再利用できる品質ゲートを選ぶ。
- 今回は何が違うかを一文にする。
似たProjectがあればコピーするのではなく、既存の強い入口を更新するか、役割の違う親ハブを作るか、新規を見送るか判断します。薄い重複ページを増やさないためです。
更新時のチェックリスト
- URLとstatusは現在確認できるか。
- summaryは宣伝文ではなく役割を説明しているか。
- audienceとproblemが混ざっていないか。
- interactionとcontentのpatternを分けたか。
- lessonは抽象的な感想で終わっていないか。
- 関連slugが実在し、自分自身を参照していないか。
- 公開できない数値や個人情報を入れていないか。
- 失敗を次の品質ゲートへ変換できたか。
更新日と確認日の違い
ProjectのlastReviewedは、公開URLやAtlas表示を最後に確認した日です。サイトの本文や実装を更新した日とは限りません。NoteのupdatedAt、ProjectのlastReviewed、外部sourceのaccessedAtを一つの日付にまとめると、何が変わったのか分からなくなるため、役割を分けて保持します。
Atlasへ戻って整合性を見る
実際の関係はProject Atlasで、全件のstatus・確認日はAll Projectsで確認できます。判断の型はPatterns、診断・ガイド・静的配信の役割分担はLocal AI Compass Case Studyへ接続しています。
よくある質問
再利用可能なProject data FAQ
チャットログをそのままProject dataにすればよいですか
そのまま移しません。背景は判断材料へ要約し、目的、問題、導線、技術、失敗、学びを型付きの項目へ分けます。個人情報や秘密情報は公開データへ入れません。
統制語彙を使うとサイトごとの違いが消えませんか
語彙は比較する判断軸だけに使い、色や文章、優先順位まで統一しません。共通化するのはfilterや検証が読める値で、サイト固有の表現は残します。
更新日と確認日は同じ意味ですか
違います。更新日は本文やデータを実質的に変えた日、確認日は公開URLや掲載情報を確認した日です。Note、Project、外部sourceで日付の役割を分けます。
データ整合性testでは何を止めますか
重複slug、存在しない関連先、自分自身への参照、許可されない語彙、公開URLとstatusの不整合などを止めます。表示できるだけでなく、次の更新で壊れにくいことを確認します。
知見をデータに変える目的は、過去を美しく整理することではありません。次の企画で、同じ調査と同じ失敗を繰り返さず、それでも前のサイトとは違う体験を作ることです。Project Atlasは作品棚ではなく、その判断を始める索引です。
DESIGN PATTERNS / REVERSE INDEX