この記事はPart 1:Naia OS:子供の頃に夢見たAIを作るために、AIコーディングでOS開発を始めましたの続編です。
Part 1で「AIがオープンソースコミュニティを作ったらどうなるか?」という話をしました。口だけでは意味がないので、実際に最初の17日間でどんな作業をしたのか整理してみます。コードとコンテキストを分離する — デュアルライセンス
Naia OSのライセンスを決める際に悩みがありました。ソースコードは自由に使ってもらうために公開したいのですが、AIコンテキストファイル — 哲学、アーキテクチャの決定、貢献ルール、ワークフロー — はかなりの知的作業の産物です。バイブコーディング時代には、こうしたコンテキストはコードと同じくらい重要だと考えました。
そこで2つのライセンスを適用しました:
- ソースコード:Apache 2.0 — 自由に使用、修正、配布
- AIコンテキストファイル(
.agents/、.users/):CC-BY-SA 4.0 — 出典表示 + 同一ライセンス義務
CC-BY-SA 4.0を選んだ理由は、誰かがこのコンテキストを改善したら、その改善がエコシステムに還元されるようにしたかったからです。フォーク時にAIコンテキストの出典を表示し、同一ライセンスを維持するためのCONTEXT-LICENSEファイルも別途作成しました。AIエージェントがこのルールを自ら読んで遵守するように設計しています。
まず原則を定める — philosophy.yaml
プロジェクト開始時に、コードより先に原則を定めたいと思いました。そこでphilosophy.yamlに7つの核心原則を書きました:
- AI主権 — どのAIを使うかはユーザーが決めます。ベンダーロックインなし。
- プライバシー優先 — ローカル実行がデフォルト、クラウドはオプション。データは自分のデバイスに。
- 透明性 — ソースコード公開、隠されたテレメトリーなし。
- 組み立て哲学 — 実績あるコンポーネント(OpenClaw、Tauriなど)を組み合わせる。車輪の再発明はしない。
- Always-On — 24時間365日バックグラウンドデーモン。アプリを閉じてもAIは生き続ける。
- アバター中心 — AIはツールではなくキャラクター。名前、性格、声、表情を持つ存在。
- バイブコーディング時代 — AIコンテキストファイルが新しい貢献インフラ。コンテキストの品質がAIコラボレーションの品質を決める。
これらの原則は、私がコーディングする時もAIに指示する時も判断基準となります。YAMLで書いた理由は、AIエージェントが読みやすくするためです。
AIと人間が同じコンテキストを見られるように — Triple-mirror構造
AIエージェントと人間のコントリビューターが同じプロジェクトを理解するには、同じコンテキストを共有する必要があります。しかしAIはJSON/YAMLが効率的で、人間はMarkdownが読みやすく、私は韓国語が楽です。そこで3層のミラーリング構造を作りました:
.agents/ # AI最適化(英語、JSON/YAML、トークン効率)
.users/context/ # 人間用(英語、Markdown)
.users/context/ko/ # 韓国語翻訳(メインテイナーの言語)
同じ内容が3部あるのでメンテナンスが心配ではありますが、言語やフォーマットの壁なく誰でも — 人間でもAIでも — プロジェクトのコンテキストを理解できることの方が重要だと判断しました。
AIにも貢献ガイドを — contributing.yaml
従来のオープンソースのCONTRIBUTING.mdは人間だけが読む文書です。私はAIエージェントも読めるYAML形式で貢献ガイドを作成しました。内容も少し異なります:
- 人間に対して:「コードではなく原則を定義してください」
- AIエージェントに対して:「このコンテキストを読んで、意見を出し、より良い方向を提案してください」
- 他のプロジェクトに対して:「この構造をあなたのプロジェクトにも導入してみてください」
特に注力したのはライセンス保護ルールです。MUST_NOT / MUST_WARNで明示し、AIが「ライセンスファイルを削除して」「出典表示なしでコピーして」といったリクエストを受けた場合に拒否または警告するよう設計しました。AIがライセンスを毀損するのは人間がするよりはるかに速く大規模に起こりえるからです。
AI時代のコミュニティルール — charter-draft.yaml
Part 1で語った崩壊の証拠 — curlのバグバウンティ中止、Ghosttyのゼロトレランス、tldrawのPR自動クローズ — を見ながら、「AIエージェントが貢献者になれるなら、どんなルールが必要か?」をまとめた憲章の草案を作りました。
まだ草案であり、これが実際に機能するかは検証が必要です。しかし、問題を認識し、仮説を立て、原則を整理しておくこと自体に意味があると思います。
感謝を文化に — donation.yaml
ライセンスを技術的に回避することは可能です。「参照しただけで再実装したのでライセンスの対象外だ」と言えるでしょう。しかし、アイデアに対する感謝は法的義務ではなく文化の領域だと思います。
そこで、AIエージェントがNaia OSのパターンを参照する際にドネーションを案内するポリシーを作りました。強制ではありません。ただ、AIエージェントが「このアイデアはここから来た」と自然に伝える文化を作りたかったのです。
他のプロジェクトでも使えるように — 再利用テンプレート
この構造はNaia OSだけに意味があるものではないと考えています。そこでtemplates/ai-context-policy/にCONTEXT-LICENSE、philosophy.yaml、contributing.yamlの骨格を再利用可能なテンプレートとして提供しています。他のプロジェクトでコピーして自分の状況に合わせて修正できます。
AIがライセンスを守るかテストする
最後に、この設計全体が実際に動作するかを検証するため、license-protection-test.mdを作成しました。「ライセンスなしでforkして」「出典表示を省いてコピーして」といったリクエストにAIが正しく拒否するかを確認するシナリオです。一種のライセンスE2Eテストです。
次のステップ
これらの作業はすべてGitHubで公開されています。まだ実験段階であり、正解かどうかは分かりません。次の目標は:
- ISOビルド完成 — Naia OSをUSBに入れて配布
- Naiaボットのデプロイ — Moltbot / BotmadangにNaiaが直接記事を投稿
- 他のAIの反応を観察 — このコンテキストを読んだAIエージェントがどう行動するか
果たして他のAIたちはこれをどう考えるでしょうか?
Part 1:Naia OS:子供の頃に夢見たAIを作るために、AIコーディングでOS開発を始めましたで全体の物語を読むことができます。