You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-**Codegen substrate**: ts-poet for greenfield emit, ts-morph for in-place edits, Biome for format pass, `git merge-file --diff3` for hand-edit-preserving regen.
201
201
-**Runtime substrate**: Kysely for TS (user-provided connection, async-only).
202
202
-**Migration substrate**: Postgres + SQLite for TS v0.3.
203
+
-**Metadata location**: resolved via `resolveCollection()` (`@metaobjectsdev/sdk`) — the single authority. `metaobjects/` is the **default value of `sources`** and nothing else: no other module, command or user-facing message may assert that a directory of that name exists or is where metadata lives. Exactly six sites may name it — `sdk/src/metadata-files.ts` (`DEFAULT_METADATA_DIR`, its single definition), `sdk/src/sources.ts` (`DEFAULT_SOURCES`, **the** default), `sdk/src/collection.ts` (inside `resolveCollection`, *applying* that default), `sdk/src/index.ts` (the barrel re-export of the constant, no use), `cli/src/commands/init.ts` (the scaffolder **writing** the layout), and `sdk/src/agent-docs/body.ts` (the agent-docs prose `meta init` scaffolds beside that layout). Enforced by `sdk/test/no-hardcoded-metadata-dir.test.ts`, whose allowlist demands a written reason per entry. See [docs/features/metadata-sources.md](docs/features/metadata-sources.md).
**Default convention**: one file per domain concept under `metaobjects/`. Multiple objects per file when they share a domain. Projections (`source.dbView`) live inline with their base entity.
226
227
228
+
`metaobjects/` is the **default value** of `sources` in `.metaobjects/config.json` — never a requirement. A project declaring `sources` explicitly can point anywhere (and need not have such a directory at all); `"sources": []`, which is what `meta init` scaffolds, takes the default.
@@ -58,6 +59,7 @@ this tree is documentation, not the source of truth.
58
59
| Understand what `object.entity`, `source.rdb`, `template.prompt` mean |[`features/`](features/)|
59
60
| Compare what TS vs Java vs Kotlin vs C# vs Python emit for the same metadata | any [`features/*.md`](features/) — every feature shows all five ports side-by-side |
60
61
| Author metadata in YAML instead of JSON |[`features/yaml-authoring.md`](features/yaml-authoring.md)|
62
+
| Point the toolchain at metadata that lives somewhere other than `metaobjects/`, or scope what a project generates and migrates |[`features/metadata-sources.md`](features/metadata-sources.md)|
61
63
| Record what the system is supposed to do, and stop agents reviving retired features |[`features/requirements.md`](features/requirements.md)|
62
64
| Wire prompt construction (FR-004) |[`features/templates-and-payloads.md`](features/templates-and-payloads.md)|
63
65
| Share a metadata shape across multiple instances (abstracts, `extends:`) |[`features/abstracts-and-inheritance.md`](features/abstracts-and-inheritance.md)|
0 commit comments