Astrale Domain
目標に合致するリファレンスからドメイン詳細知識を読み込みます。
カーネル境界
- ガードレールとして、スキーマ、実行可能エビデンス、およびSDKのDomainリンターを使用します。
- Domainソースは、対応する意味論的な
@astrale-os/sdk/*サブパスを通じてのみ、CoreおよびDSLオーサリング値をインポートします。@astrale-os/kernel-coreや@astrale-os/kernel-dslを直接インポートしたり、フラットなSDKルートバレルに置き換えたりしないでください。 - 認可は、Schemaが所有するPolicyと呼び出し可能な
authモードに保持します。ハンドラは許可された呼び出しのみを実行し、2番目の認可モデルを定義しません。 - 各実存的Policyノードの範囲は意図的に選択します。トポロジが所有するマッチングには
node()、ポリモーフィックなクラスファミリーにはnode(Class)、正確な同一性にはnode.exact(Class)を使用します。 - インストールされたSDKのパブリックエクスポートと現在のDomainソースを、API構文の権威として扱います。
インテントルーター
このルーターを使用して、現在のタスクが所有するリファレンスのみを読み込みます。新しいDomainの場合は、以下のフェーズ化されたワークフローも使用します。既存の公開スキャフォールドは、その基盤フェーズをすでに満たしています。
- Domainのスキャフォールド、デプロイ、インストール、テスト、またはTypeScriptの設定:
references/development.mdを読む。 - スキーマ、ボキャブラリ、プロパティ、クラス/エッジの選択、またはスキーマのレビュー:最初に
references/schema.mdを読む。スキーマ作業の際は常に読むこと。 - ハンドラ、呼び出し可能バインディング、カーネル呼び出し、グラフの読み取り/書き込み、またはクロスドメイン呼び出しの実装:
references/runtime.mdを読む。 - 外部APIのラップ、統合/プロバイダの定義、webhookの受信、または副作用/リトライ動作の設計:
references/integrations.mdを読む。 - 自分で機能をモデリングする代わりに、ネイティブのAstraleドメインを再利用/インポートするかどうかを決定:
references/domains.mdを読む。 - サインインユーザーのモデリング、既存ユーザーの招待/登録、またはシェルグループの割り当て:
references/users.mdを読む。 - Domain、Function、View、クライアント呼び出し、パブリックエンドポイント、ID、委任、認証モード、またはPolicyのセキュリティ確保:
references/policies.mdを読む。 - ブラウザビューの構築またはレビュー、マウントされたUI、Viewアクセス、View解決、またはフロントエンドデザイン:
references/views.mdを読み、製品インターフェースのレイアウト、インタラクション、コピーにはastrale-frontend-designを適用する。 - インストールされたスキーマリビジョン、データ移行、またはバックフィルの計画または資格評価:
references/migration.mdを読む。 - グラフアクセスの最適化、ラウンドトリップの削減、インデックス/クエリの選択、またはレイテンシに関する呼び出しパターンのレビュー:
references/performance.mdを読む。 - デモデータ(Studioが描画しポリシーを証明する
tests/下のデータセット)のオーサリングまたは更新:references/datasets.mdを読む。 - テスト、フィクスチャ、デモフロー、またはスモークテストシナリオの作成:
references/testing.mdを読む。 - 障害が発生しているライブドメイン、発行者/ディスカバリの混乱、呼び出しルーティング、またはランタイムの乖離の診断:
references/debugging.mdを読む。
新しいDomain作成ワークフロー
Domainの作成、構築、プロトタイプ作成、またはPOC作成のリクエストに対しては、該当するフェーズを順に従い、フェーズが開始されたときにのみリファレンスを読み込みます。
- 基盤(Foundation):最初にワークスペースを検査します。公開スキャフォールドが存在しない場合、
references/development.mdを読む。ネイティブDomainを再利用するかどうかを決定する場合にのみreferences/domains.mdを読む。ワークスペースがすでにSDK、デプロイメントアダプタ、アプリケーション、およびランタイムを宣言している場合は、その配管を維持し、直接スキーマに進みます。 - スキーマ(Schema):スキーマを作成する前に
references/schema.mdを読む。サインインユーザーとグループの場合は、IDやオンボーディング用語を独自に作る前にreferences/users.mdも読む。 - 呼び出し可能(Callables):呼び出し可能を実装する前に
references/runtime.mdとreferences/policies.mdを読む。外部システムが関与する場合は、references/integrations.mdも読む。 - ビュー(Views):Domainがブラウザサーフェスを所有する場合、設計または実装前に
references/views.mdを読む。ビューはスキーマ宣言であり、SDK Domain定義のフィールドではありません。 - デモデータ(Demo data):意味のあるサンプルグラフを持つDomainの場合、
tests/下に小さなデータセットを作成し、astrale.config.tsから参照します。最初にreferences/datasets.mdを読む。API専用Domainのグラフデータを独自に作成したり、焦点を絞った編集を無関係なデモ作業に拡大したりしないでください。 - 完了(Completion):
references/testing.mdを読む。提供された公開呼び出し可能を、代表的な成功入力と該当する拒否入力で実行し、その後関連するテスト、型チェック、リント、ビルドを実行します。利用可能なパッケージを提供する場合はパッケージングを検証し、デプロイメントまたは統合の成功を主張する場合はライブ動作を検証します。
references/migration.md、references/performance.md、references/debugging.md は、ドメインのライフサイクルまたは現在の問題がそれらを必要とする場合にのみ読み込みます。
常時稼働ワークフロー
- メモリからAPI構文を信頼する前に、現在のリポジトリまたはスキャフォールドを検査します。
- ライブ動作については、
references/debugging.mdを使用し、ソース編集を有効と見なす前に、デプロイ/インストール/ランタイムのパスを証明します。 - スキーマ変更が既存のデータセットに影響する場合、同じ変更内でそれらを有効かつ代表的なものに保ちます。
references/datasets.mdを読む。サンプルはすべてのケースを網羅するのではなく、テストを補完します。