From a24a84db510b3e028c77bdd27451cd1f622904fb Mon Sep 17 00:00:00 2001 From: Doug Mealing Date: Tue, 27 Oct 2026 20:44:44 -0400 Subject: [PATCH 1/2] docs: refresh the fit-assessment capability sheet to 1.1.4 / 8.1.4 --- CHANGELOG.md | 7 +++++++ .../metaobjects-fit-assessment/SKILL.md | 4 ++-- .../references/capability-sheet.md | 21 ++++++++++++++++++- 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 110abade7..8ade2922e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,13 @@ here.** ## [Unreleased] +### Documentation + +- **The fit-assessment prompt's capability sheet is re-checked against 1.1.4 / Maven 8.1.4** + (it read 1.0.8, last checked 2026-09-26): reporting, the requirements gate and + `--require-implementers`, the `wire` setting and eject in every port are now listed. The hosted + `/assess.md` picks this up when the site's pinned release moves to a release containing it. + ## [1.1.4] — 2026-10-26 _npm `1.1.4` (full lockstep across all 14 `@metaobjectsdev/*` publish candidates), PyPI `1.1.4`, NuGet `1.1.4` and Maven Central `8.1.4`._ diff --git a/agent-context/skills/metaobjects-fit-assessment/SKILL.md b/agent-context/skills/metaobjects-fit-assessment/SKILL.md index 126f99cc3..e51534a79 100644 --- a/agent-context/skills/metaobjects-fit-assessment/SKILL.md +++ b/agent-context/skills/metaobjects-fit-assessment/SKILL.md @@ -8,7 +8,7 @@ metadata: # MetaObjects Fit & Migration Assessment _Assessment prompt v2. The § Capability sheet was last checked against the MetaObjects source -on 2026-09-26 (the 1.0.8 / 1.0.9 line). A later release may add capabilities the sheet does not +on 2026-10-28 (1.1.4 / Maven 8.1.4). A later release may add capabilities the sheet does not list yet: check anything load-bearing against the published sources named in M3._ @@ -458,7 +458,7 @@ Read `references/json-contract.md` before you write `fit-assessment.json`, and k --- -## Capability sheet — what each port ships at 1.0.8 (never promise across these lines) +## Capability sheet — what each port ships at 1.1.4 (never promise across these lines) Read `references/capability-sheet.md` before you state what any port can do; every capability claim in the assessment traces to it or to a published source (M3). diff --git a/agent-context/skills/metaobjects-fit-assessment/references/capability-sheet.md b/agent-context/skills/metaobjects-fit-assessment/references/capability-sheet.md index dc91ceaaa..1dc0d0239 100644 --- a/agent-context/skills/metaobjects-fit-assessment/references/capability-sheet.md +++ b/agent-context/skills/metaobjects-fit-assessment/references/capability-sheet.md @@ -1,9 +1,10 @@ -# Capability sheet — what each port ships at 1.0.8 (never promise across these lines) +# Capability sheet — what each port ships at 1.1.4 / Maven 8.1.4 (never promise across these lines) ## Contents - Contract-only generation, per port - What contract-only does not do - Full-stack caps per port +- Reporting, requirements and the wire setting (1.1) - Not shipped, never promise Paths are relative to the MetaObjects repository on GitHub. @@ -63,6 +64,24 @@ code from the shapes. consumer's serializer settings (the byte-identical REST wire is a property of the *generated routes*, gated by `fixtures/api-contract-conformance/`). Check it in the wedge. +- **Reporting** (`docs/features/reporting.md`, metamodel 1.1; relative `startOf` windows 1.2): `dimension.*`, + `measure.*`, `segment.filter` and `object.report` load and validate in all five ports. A report with + a read-only `source.rdb @kind: view` is lowered to a SQL view by `meta migrate` (Postgres, SQLite, + D1; MySQL SQL from `buildReportViews`) and every port's generators serve it as one read-only list + route (rows past a 10,000 cap answer `report_too_large`). The TypeScript `cube-model` reference + generator exports it to Cube. TanStack gets a list hook only: no grid or form for a report. +- **Requirements** (`docs/features/requirements.md`): `requirement.functional` / `.architectural` + load in all five ports and the `verify` gate runs in each. The strict form is + `--require-implementers` (TS, Python, C#), `-Dmeta.verify.requireImplementers=true` (Java/Kotlin), + or `META_REQUIRE_IMPLEMENTERS=1`. A green run proves links resolve, not that a claim is true. +- **Wire setting**: `"wire": {"decimals", "nullMembers"}` in `.metaobjects/config.json`, read by every + port's codegen. Default `native`: each language's standard JSON (C#/Java/Kotlin decimals as numbers, + Python/TypeScript as strings). `decimals: "string"` + `nullMembers: "omit"` gives the identical + cross-port form (`docs/features/api-contract.md`, "The wire setting"). Physical names default to + `snake_case` in every port via `naming` (`literal` keeps field names). +- **Eject** works in every port (`meta eject`, `metaobjects eject`, `mvn metaobjects:eject`, + `dotnet meta eject`); documentation pages are generators in the generator list in every port. + **Full-stack caps per port:** - **Schema pillar** (`meta migrate`, `verify --db`): Node `meta` CLI only; Postgres, SQLite, D1 only. Any other database: out for that database; data access unaffected. From 0d257605bfd21a7cc9baf6f6f89a6cd8c8fc3af6 Mon Sep 17 00:00:00 2001 From: Doug Mealing Date: Tue, 27 Oct 2026 23:02:57 -0400 Subject: [PATCH 2/2] docs: correct the Kotlin validator wording in the capability sheet --- .../metaobjects-fit-assessment/references/capability-sheet.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/agent-context/skills/metaobjects-fit-assessment/references/capability-sheet.md b/agent-context/skills/metaobjects-fit-assessment/references/capability-sheet.md index 1dc0d0239..0edfb382b 100644 --- a/agent-context/skills/metaobjects-fit-assessment/references/capability-sheet.md +++ b/agent-context/skills/metaobjects-fit-assessment/references/capability-sheet.md @@ -17,7 +17,7 @@ building block. Every generator is a reference helper an adopter selects, ejects |---|---|---|---| | TypeScript | the `entity` reference generator in a target with `runtime: false` | Zod schemas + inferred TS types; no `drizzle-orm`, no `runtime-ts` import, for entities, value objects and projections alike | `server/typescript/packages/codegen-ts/src/metaobjects-config.ts` (`TargetConfig.runtime`), `.../src/templates/entity-file.ts` | | Java | `SpringDtoGenerator` (a record per concrete entity or projection, whatever its source, with jakarta validation annotations) and `SpringValueObjectGenerator` (a record per value object) | Java 21 records; your JPA/JDBC entity stays hand-written | `server/java/codegen-spring/src/main/java/com/metaobjects/generator/spring/` | -| Kotlin | `KotlinEntityGenerator` (+ `KotlinValidatorGenerator`) | plain Jackson-compatible data classes per entity and value object | `server/java/codegen-kotlin/src/main/kotlin/com/metaobjects/generator/kotlin/` | +| Kotlin | `KotlinEntityGenerator` | plain Jackson-compatible data classes per entity and value object | `server/java/codegen-kotlin/src/main/kotlin/com/metaobjects/generator/kotlin/` | | C# | `EntityGenerator`, with the contract declared **sourceless** | a POCO with DataAnnotations and no EF mapping (a sourced entity gets `[Table]`/`[Key]`/`[Column]`) | `server/csharp/MetaObjects.Codegen/Generators/EntityGenerator.cs` | | Python | the `entity` generator | Pydantic models (no ORM of any kind) | `server/python/src/metaobjects/codegen/generator_registry.py` | @@ -92,7 +92,7 @@ code from the shapes. the existing ORM sits behind unchanged), payload records, output parsers. Entities stay hand-written on this lane. `mvn metaobjects:generate` / `:verify` (no live-DB mode). - **Kotlin/JVM**: entity + Exposed table + Spring controller + payload + relations + filter - allowlist + validators + output parsers. + allowlist + a startup validator that checks the Exposed tables against the model (not field validation) + output parsers. - **C#**: EF Core entities + `AppDbContext` + CRUD minimal-API routes + render/payload/verify via `dotnet meta`; no metadata-driven runtime tier; no migrate surface. - **Python**: Pydantic + router + payload/parsers + `ObjectManager` runtime; the consumer wires the