Astrale Domain
Load detailed domain knowledge from the references that matches the goal.
Kernel boundary
- Use Schema, executable evidence, and the SDK's Domain linter as guardrails.
- Domain source imports Core and DSL authoring values only through the matching semantic
@astrale-os/sdk/*subpath. Do not import@astrale-os/kernel-coreor@astrale-os/kernel-dsldirectly, and do not replace them with a flat SDK root barrel. - Keep authorization in Schema-owned Policy and callable
authmode; handlers execute only admitted calls and do not define a second authorization model. - Choose each existential Policy Node extent deliberately:
node()for topology-owned matching,node(Class)for a polymorphic Class family, ornode.exact(Class)for exact identity. - Treat the installed SDK's public exports and the current Domain source as authoritative for API syntax.
Intent Router
Use this router to load only the references owned by the current task. For new Domains, also use the phased workflow below; an existing public scaffold already satisfies its foundation phase.
- Scaffold, deploy, install, test, or configure TypeScript for a domain: read
references/development.md. - Author schema, vocabulary, properties, Class/Edge choices, or review a schema: read
references/schema.mdfirst. Always read it for schema work. - Implement handlers, callable bindings, kernel calls, graph reads/writes, or cross-domain calls: read
references/runtime.md. - Wrap an external API, define an Integration/Provider, receive webhooks, or design side-effect/retry behavior: read
references/integrations.md. - Decide whether to reuse/import a native Astrale domain instead of modeling a capability yourself: read
references/domains.md. - Model sign-in users, invite/register existing people, or assign Shell groups: read
references/users.md. - Secure a Domain, Function, View, client call, public endpoint, identity, delegation, authentication mode, or Policy: read
references/policies.md. - Build or review browser views, mounted UI, View access, View resolution, or frontend design: read
references/views.mdand applyastrale-frontend-designfor product-interface layout, interaction, and copy. - Plan or qualify an installed Schema revision, data transition, or backfill: read
references/migration.md. - Optimize graph access, reduce round trips, choose indexes/queries, or review call patterns for latency: read
references/performance.md. - Author or update demo data — the Datasets under
tests/the Studio draws and proves policies on: readreferences/datasets.md. - Write tests, fixtures, demo flows, or smoke-test scenarios: read
references/testing.md. - Diagnose a failing live domain, issuer/discovery confusion, invocation routing, or runtime drift:
read
references/debugging.md.
New Domain Creation Workflow
For a request to create, build, prototype, or make a POC of a Domain, follow the applicable phases in order and load a reference only when its phase begins.
- Foundation: Inspect the workspace first. When no public scaffold exists, read
references/development.md; readreferences/domains.mdonly when deciding whether to reuse a native Domain. When the workspace already declares the SDK, deployment adapter, Application, and Runtime, keep that plumbing and move directly to Schema. - Schema: Before authoring the schema, read
references/schema.md; for sign-in users and groups, also readreferences/users.mdbefore inventing identity or onboarding vocabulary. - Callables: Before implementing callables, read
references/runtime.mdandreferences/policies.md. If an external system is involved, also readreferences/integrations.md. - Views: When the Domain owns a browser surface, read
references/views.mdbefore designing or implementing it. Views are Schema declarations, not fields on the SDK Domain definition. - Demo data: For a Domain with a meaningful sample graph, author a small Dataset under
tests/, referenced fromastrale.config.ts. Readreferences/datasets.mdfirst; do not invent graph data for an API-only Domain or expand a focused edit into unrelated demo work. - Completion: Read
references/testing.md; exercise the delivered public callables with representative success and applicable refusal inputs, then run the relevant tests, typecheck, lint, and build. Verify packaging when delivering a consumable package and live behavior when claiming deployment or integration success.
Read references/migration.md, references/performance.md, and references/debugging.md only when the
domain's lifecycle or current problem calls for them.
Always-On Workflow
- Inspect the current repo or scaffold before trusting API syntax from memory.
- For live behavior, use
references/debugging.mdand prove the deployed/installed/runtime path before treating source edits as effective. - When a Schema change affects existing Datasets, keep them valid and representative in the same
change. Read
references/datasets.md; examples complement tests rather than exhaust every case.