# Build Core Database

> Build a feature's ecs schema — the core-database (components, resources, archetypes). The first ecs layer.

- Skill: `adobe/build-core-database-2` (Agent Skill)
- Install (CLI): `npx skillmds@latest add adobe/build-core-database-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/adobe/build-core-database-2/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: Adobe (https://skillmd.com/u/adobe)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/adobe/build-core-database-2

---


Create `ecs/core-database/` — `core-database.ts` plus one single-export file per facet
the feature actually uses (`components`, `resources`, `archetypes` are each optional on
`Database.Plugin.create`). Create only the facet files you need; omit the rest rather than
shipping empty `Database.components({})` boilerplate. A feature with **no entities** (a
singleton whose whole state is resources) is just `resources.ts` + `core-database.ts`.

- `components.ts` → `Database.components({ document, settings, presence, session })` (scopes optional) — only if the feature has entities.
- `resources.ts` → `Database.resources({ … })` (every entry needs a `default`) — for singleton / global state.
- `archetypes.ts` → `Database.archetypes(components, { … })` — only alongside components.
- `core-database.ts` → `Database.Plugin.create({ imports?, components?, resources?, archetypes? })`, exporting the `CoreDatabase` namespace.

The schema root; comes after `data/` (and `services/`). Bind each schema from its `data/`
type — don't author shapes here. Components use JSON schemas; resources use the
`{ default }` convention (a schemaless aggregate binds via `{ default: State.create() }`).

The how is in the auto-loading `features/ecs/index.md` + `components.md` / `resources.md` /
`archetypes.md` rules.

