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
{{ message }}
Repository navigation
Commit aec8402
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: CLAUDE.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,11 +17,11 @@ Equal weight. Three ship per-language today; the fourth is committed for 7.0.0:
17
17
18
18
## Status
19
19
20
-
TypeScript reference implementation is **published to npm at `0.5.0`** (11 `@metaobjectsdev/*` packages on the `latest` tag; `cli` at `0.5.1`) — Projects D–G shipped end-to-end with 2124+ tests passing. Java port is in progress: H3a (loader restructure) shipped 2026-05-19; H3b (conformance harness) is active. **C# is a first-class full-stack target.** Loader + conformance shipped (loader, canonical serializer, and a `dotnet test` conformance runner over the full shared corpus; metadata layer fully caught up — empty expected-failures ledger, incl. `template.*` + `origin.collection`). The FR-004 tier ships: the **render engine (`MetaObjects.Render`)** renders the shared `fixtures/render-conformance` corpus byte-identical to TS, plus payload-VO codegen and `verify`. **The EF Core + ASP.NET codegen tier ships** (`MetaObjects.Codegen` + the `meta` CLI: `verify`/`gen`/`migrate`): entities, `AppDbContext` (DbSets, projection `.ToView`, `@storage` owned types via `OwnsOne`), CRUD minimal-API routes, and Postgres DDL (`CREATE TABLE` with PK/NOT NULL/UNIQUE/FK + `@storage` columns; `CREATE VIEW` for projections incl. aggregate/passthrough-`@via`/collection origins). Remaining tiers — introspection-driven incremental migration (`migrate` is full-CREATE today) and the runtime-metadata pillar — are being built out (no part of MetaObjects is out of scope for C#). Python is planned post-H3.
20
+
TypeScript reference implementation is **published to npm at `0.5.0`** (11 `@metaobjectsdev/*` packages on the `latest` tag; `cli` at `0.5.1`) — Projects D–G shipped end-to-end with 2124+ tests passing. Java port is in progress: H3a (loader restructure) shipped 2026-05-19; H3b (conformance harness) is active. **C# is a first-class full-stack target.** Loader + conformance shipped (loader, canonical serializer, and a `dotnet test` conformance runner over the full shared corpus; metadata layer largely caught up — known-gap list now tracks the `source.rdb` source-v2 paradigm cluster + `doc-common-attrs-on-all-types`, all blocked on the source-v2 port). The FR-004 tier ships: the **render engine (`MetaObjects.Render`)** renders the shared `fixtures/render-conformance` corpus byte-identical to TS, plus payload-VO codegen and `verify`. **The EF Core + ASP.NET codegen tier ships** (`MetaObjects.Codegen` + the `meta` CLI: `verify`/`gen`/`migrate`): entities, `AppDbContext` (DbSets, projection `.ToView`, `@storage` owned types via `OwnsOne`), CRUD minimal-API routes, and Postgres DDL (`CREATE TABLE` with PK/NOT NULL/UNIQUE/FK + `@storage` columns; `CREATE VIEW` for projections incl. aggregate/passthrough-`@via`/collection origins). Remaining tiers — introspection-driven incremental migration (`migrate` is full-CREATE today) and the runtime-metadata pillar — are being built out (no part of MetaObjects is out of scope for C#). Python is planned post-H3.
21
21
22
22
The 7.0.0 line is specced: FR-003 brings the Java OMDB persistence engine, metadata-driven schema migration, and dynamic projections onto current core; FR-004 builds the fourth pillar (cross-language prompt construction) on top of FR-003's projections. Both are design-stage plan-of-record (`docs/superpowers/specs/2026-05-22-fr-003-*` and `*-fr-004-*`), not yet implemented.
23
23
24
-
Cross-language conformance fixtures live at `fixtures/conformance/` (45 fixtures + a `CAPABILITIES.json` manifest). See `spec/roadmap.md` for current + planned work.
24
+
Cross-language conformance fixtures live at `fixtures/conformance/` (85 fixtures + a `CAPABILITIES.json` manifest). See `spec/roadmap.md` for current + planned work.
25
25
26
26
## Public repository hygiene
27
27
@@ -396,6 +396,7 @@ Preserve the following contracts exactly across all language ports:
396
396
- Schema attrs: `@schema` on `source[dbTable]` and `source[dbView]` (DB schema name; Postgres default `public`, SQLite rejects non-default values)
397
397
- Storage attrs: `@storage` on `field.object` (with `@objectRef`) — values `flattened` / `jsonb` / `subdocument`. Unifies "owned types" (flattened storage) and "structured JSONB" (jsonb storage). Defaults to single-jsonb-column when absent (back-compat).
398
398
- Enum: `field.enum` is a first-class field subtype (peer of `currency`), string-backed. Required `@values` string-array attr (member symbols). Members must be a non-empty set, each matching `^[A-Za-z_][A-Za-z0-9_]*$`, no duplicates — every port's loader enforces this (own-only) emitting `ERR_BAD_ATTR_VALUE` (missing `@values` → `ERR_MISSING_REQUIRED_ATTR`). Reuse via abstract `field.enum` + `extends`. Codegen: TS union + `z.enum`, C# `enum` + EF `HasConversion<string>()`, DB `varchar` + `CHECK`. Int-backed values, display labels, and native PG enum are deferred (see `docs/superpowers/specs/2026-05-23-enum-datatype-design.md`).
399
+
- Documentation common attrs (any node): `description`, `title`, `notes`, `deprecated`, `replacedBy`, `seeAlso`, `aliases`. Registered via the cross-language `commonAttrs` registry hook (`registerCommonAttrs` / `RegisterCommonAttrs` / `register_common_attrs`; Java provider currently substrate-only, wiring deferred to H3b). `notes` is the internal-only rationale slot — never emitted to user-facing doc-gen (JSDoc / XML-doc / Postgres `COMMENT ON` / Mermaid prose). TS doc-gen ships all three tiers; C# ships XML-doc + COMMENT ON. See `docs/superpowers/specs/2026-05-24-documentation-provider-design.md`.
399
400
400
401
**Wire format:**
401
402
- Currency: integer minor units on the wire always. Float arithmetic for money is forbidden.
"@description": "An order placed by a User.\n\nLifecycle: DRAFT → PUBLISHED → ARCHIVED.\nMultiple lines preserved via canonical serialization.",
9
+
"@notes": "Internal rationale:\n- We chose status as an enum because external integrations require canonical states.\n- Don't surface this in API docs.",
"@description": "An order placed by a User.\n\nLifecycle: DRAFT → PUBLISHED → ARCHIVED.\nMultiple lines preserved via canonical serialization.",
9
+
"@notes": "Internal rationale:\n- We chose status as an enum because external integrations require canonical states.\n- Don't surface this in API docs.",
0 commit comments