Copyright (C) 2026 ZionXiaoxiSuOGLocGo SPDX-License-Identifier: GPL-3.0-or-later
project-docs
3文書からなるプロジェクト知識体系を作成・維持します。project-onboard が検出するすべてのプロジェクトタイプをサポートし、プロジェクトタイプに応じて適切なテンプレートを自動選択します。
3文書体系
| ファイル | 目的 | 更新頻度 |
|---|---|---|
AGENTS.md | プロジェクト概要:識別情報、ディレクトリ構造、クラスアーキテクチャ、エントリポイント、依存関係、メモ | マイルストーンごと(新しいファイル/クラスが約3〜5個) |
PROJECT_STATE.md | 生きたドキュメント:全クラス/ソース一覧(パラメータ付き)、設定、モジュールマップ、システムフロー、完了/ToDoリスト | セッション終了ごと |
DEVLOG.md | 開発ログ:時系列エントリ—何を行ったか、なぜ行ったか、学んだこと | 1日ごと、または機能マイルストーンごと |
更新トリガー、コンテンツ境界、一貫性チェックの詳細なルールについては maintenance-spec.md を参照してください。
テンプレート選択
テンプレートは project-onboard のルールパックと同じ自動発見パターンに従います。このスキルは templates/<type>/PROJECT_STATE.md.tmpl をロードしようと試みます。ここで <type> は AGENTS.md のBasic InformationにあるType値を小文字にしたものです。タイプ固有のテンプレートが存在しない場合は、templates/PROJECT_STATE.md.tmpl にフォールバックします。
templates/<type>/PROJECT_STATE.md.tmpl が存在する? → 使用する
存在しない → templates/PROJECT_STATE.md.tmpl を使用(汎用フォールバック)
新しいエンジンやフレームワークのサポートを追加するには:templates/<type>/PROJECT_STATE.md.tmpl を作成してください。コードの変更は不要です。スキルが自動的に発見します。
すべてのタイプで共通の templates/DEVLOG.md.tmpl を使用します(プロジェクトタイプに依存しません)。
AGENTS.md → PROJECT_STATE.md フィールドマッピング
AGENTS.md のデータから PROJECT_STATE.md を事前入力する場合は、次のマッピングを使用します。
| AGENTS.md セクション | AGENTS.md フィールド | STATE テンプレートセクション | STATE プレースホルダー |
|---|---|---|---|
| Basic Information | Type, Language, Framework/Engine, Key Dependencies | §1 プロジェクト情報 | {{PROJECT_TYPE}}, {{LANGUAGE}}, {{FRAMEWORK}}, {{KEY_DEPENDENCIES}} |
| Basic Information | Engine(ゲームプロジェクトの場合) | §1 プロジェクト情報 | {{ENGINE_VERSION}} |
| Directory Structure | ディレクトリと説明 | §2 ディレクトリ構造 | {{DIRECTORY_TREE}}(汎用)または Source/{{MODULE_NAME}}/...(UE) |
| Core Architecture | 主要ファイル/クラスとその役割 | §3 ソース/スクリプト一覧 | {{CLASS_NAME}}, {{RESPONSIBILITY}}, {{FILE_NAME}} |
| Dependencies | パッケージ概要 | §4 設定 / §7 依存関係 | {{CONFIG_KEY}}, {{DEP_NAME}}(コンテキスト依存) |
| Build & Run | ビルド/テストコマンド | §9 ビルドと実行 | {{BUILD_CMD}}, {{RUN_CMD}}, {{TEST_CMD}} |
| Entry Points | 起動ファイル/シーンとその役割 | §1 プロジェクト情報(モジュール) | {{MODULE_NAME}} |
非英語出力の場合: セクションヘッダー、ラベル、プレースホルダーの説明は翻訳しますが、{{プレースホルダー}} マーカーはそのまま保持してください。
このスキルを使用するタイミング
- ユーザーが「プロジェクトドキュメントを初期化して」「init project docs」「建立文档体系」「project-docs」などと言った場合
- 新しいプロジェクトに
PROJECT_STATE.mdとDEVLOG.mdが必要な場合 - 既存プロジェクトに
AGENTS.mdはあるが、他の2文書が不足している場合 - ユーザーがセッション後にプロジェクトの状態更新を依頼した場合
ワークフロー
1. 初期化(新規プロジェクト / 不足文書がある場合)
-
ドキュメントを生成する言語をユーザーに確認します。ユーザーがスキップしたり「どちらでもよい」と言った場合は、デフォルトの英語を使用します。LLMが出力可能な任意の言語をサポートしています。エージェントが生成時に翻訳を処理します:
「プロジェクトドキュメントはどの言語で作成しますか? デフォルト:英語。LLMが出力可能な任意の言語をサポートしています。」
-
AGENTS.mdが存在するか確認します。- 存在しない場合: 最初に
project-onboardスキルを実行してAGENTS.mdを生成するよう提案します。ここで停止します。 - 存在する場合:
AGENTS.mdを読み込み、以下を抽出します:- プロジェクト名
- Type(Basic Informationから取得 — 例:「unreal」「unity」「nodejs」「python」)
- コアアーキテクチャ(クラス、ファイル、役割)
- 存在しない場合: 最初に
-
テンプレートを検出: 抽出したType(小文字)に基づき、タイプ固有のテンプレートを読み込もうとします。一致するものがなければ汎用テンプレートにフォールバックします:
- 最初に
templates/<type>/PROJECT_STATE.md.tmplを試行 - そのファイルが存在しない場合は
templates/PROJECT_STATE.md.tmpl(汎用)を使用
- 最初に
-
選択したテンプレートから
PROJECT_STATE.mdを生成:- 上記のフィールドマッピングテーブルを使用して、§1〜§3を
AGENTS.mdのデータで事前入力します。 - 残りのセクションは、将来の更新に備えてプレースホルダー構造のままにします。
- 上記のフィールドマッピングテーブルを使用して、§1〜§3を
-
templates/DEVLOG.md.tmplからDEVLOG.mdを生成:- プロジェクト名を入力します。
- エントリテンプレートは、最初の開発ログエントリの準備ができた状態にします。
-
以下のブロックを
AGENTS.mdの先頭、# プロジェクト名見出し行の直後(ただし残りのコンテンツの前)に追加します:## 最初に読むこと 1. `PROJECT_STATE.md` — 現在のタスク状況とToDo項目(§10)を読む 2. `DEVLOG.md` — 最近の開発履歴を読む --- -
作成したもの、使用したテンプレート、使用言語を報告します。
2. 更新(既存の文書がある場合)
PROJECT_STATE.mdを読み込む → §10のToDoリストを特定- 完了したことや変更点をユーザーに確認
- 影響を受けるセクションを更新:
- §1〜§2:プロジェクト情報またはディレクトリ構造が変更された場合
- §3:新しいクラス、ファイル、または主要メンバー
- §4:設定変更(ブループリントプロパティ、プレハブ設定、または汎用設定)
- §5:入力バインディング、アクションマッピング、またはモジュール/パッケージの変更
- §6:システムロジック、アーキテクチャフロー、またはゲームシステムの変更
- §7:シーン/レベル設定または外部サービスの変更
- §8:数値パラメータの変更
- §9:ビルドの問題、新しいコンパイルエラー、またはコマンドの変更
- §10:常に更新 — 完了リスト、ToDoリスト、既知の問題
DEVLOG.mdにエントリを追記(maintenance-spec.mdの形式に従う)- アーキテクチャが変更された場合(新しいクラス、プラグイン、ディレクトリ)→
AGENTS.mdを更新
3. 一貫性チェック
更新後、以下を確認します:
- AGENTS.mdとPROJECT_STATE.mdの間でデータの重複がないこと(アーキテクチャ概要 vs パラメータ詳細)
- AGENTS.mdのディレクトリ構造エントリには、PROJECT_STATE.mdに対応するエントリがすべて存在すること
- PROJECT_STATE.md §8のパラメータ値が実際のソースのデフォルト値と一致していること(例:
.hのデフォルト値、設定ファイルの値、BP CDOのオーバーライド) - PROJECT_STATE.md §10のToDoリストがDEVLOG.mdの最新エントリと矛盾していないこと(DEVLOGで完了とされている場合、STATEも一致しているべき)
- 3つの文書間で情報の重複がないこと(1つの事実は1か所のみ)
テンプレート
テンプレートはプロジェクトタイプによって自動発見されます。ハードコードされたマッピングテーブルはありません。ディレクトリは project-onboard の参照構造を反映しています:
templates/
├── DEVLOG.md.tmpl ← すべてのタイプ(汎用)
├── PROJECT_STATE.md.tmpl ← フォールバック(汎用)
├── unreal/PROJECT_STATE.md.tmpl ← Unreal Engine
└── unity/PROJECT_STATE.md.tmpl ← Unity
templates/<type>/PROJECT_STATE.md.tmpl ファイルはオプションです。スキルはAGENTS.mdのTypeに一致するものを読み込もうとし、存在しない場合はルートの汎用テンプレートを使用します。
新しいタイプの追加: templates/<type>/PROJECT_STATE.md.tmpl をタイプ固有のセクションと共に作成します。スキルは次の実行時に自動的に発見します。コードの変更は不要です。
ルール
- 既存ファイルを上書きしない。文書が存在する場合は、その場で更新します。
- コンテンツの境界を尊重する: AGENTS.md = アーキテクチャ概要。PROJECT_STATE.md = パラメータ詳細+状態。DEVLOG.md = 時系列の説明。
- メンテナンス仕様: 正確な更新トリガー、コンテンツ境界、禁止事項については
maintenance-spec.mdを参照してください。 - STATE/DEVLOG内のプロジェクト固有のパス/クラス名は想定されています。これらはプロジェクト文書であり、再利用可能なマニュアルではありません。