Skip to content

Commit 57dd9bd

Browse files
authored
docs: refresh fit-assessment capability sheet to 1.1.4 (#472)
* docs: refresh the fit-assessment capability sheet to 1.1.4 / 8.1.4 * docs: correct the Kotlin validator wording in the capability sheet
1 parent de4f9f6 commit 57dd9bd

3 files changed

Lines changed: 31 additions & 5 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,13 @@ here.**
3333
[docs/features/api-contract.md](docs/features/api-contract.md#report-export) and
3434
[ADR-0031 Amendment 1](spec/decisions/ADR-0031-serialization-vs-data-download-boundary.md).
3535

36+
### Documentation
37+
38+
- **The fit-assessment prompt's capability sheet is re-checked against 1.1.4 / Maven 8.1.4**
39+
(it read 1.0.8, last checked 2026-09-26): reporting, the requirements gate and
40+
`--require-implementers`, the `wire` setting and eject in every port are now listed. The hosted
41+
`/assess.md` picks this up when the site's pinned release moves to a release containing it.
42+
3643
## [1.1.4] — 2026-10-26
3744

3845
_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`._

‎agent-context/skills/metaobjects-fit-assessment/SKILL.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ metadata:
88
# MetaObjects Fit & Migration Assessment
99

1010
_Assessment prompt v2. The § Capability sheet was last checked against the MetaObjects source
11-
on 2026-09-26 (the 1.0.8 / 1.0.9 line). A later release may add capabilities the sheet does not
11+
on 2026-10-28 (1.1.4 / Maven 8.1.4). A later release may add capabilities the sheet does not
1212
list yet: check anything load-bearing against the published sources named in M3._
1313

1414
<!-- skill-form-only:start -->
@@ -458,7 +458,7 @@ Read `references/json-contract.md` before you write `fit-assessment.json`, and k
458458

459459
---
460460

461-
## Capability sheet — what each port ships at 1.0.8 (never promise across these lines)
461+
## Capability sheet — what each port ships at 1.1.4 (never promise across these lines)
462462

463463
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). <!-- inline: references/capability-sheet.md -->
464464

‎agent-context/skills/metaobjects-fit-assessment/references/capability-sheet.md‎

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
# Capability sheet — what each port ships at 1.0.8 (never promise across these lines)
1+
# Capability sheet — what each port ships at 1.1.4 / Maven 8.1.4 (never promise across these lines)
22

33
## Contents
44
- Contract-only generation, per port
55
- What contract-only does not do
66
- Full-stack caps per port
7+
- Reporting, requirements and the wire setting (1.1)
78
- Not shipped, never promise
89

910
Paths are relative to the MetaObjects repository on GitHub.
@@ -16,7 +17,7 @@ building block. Every generator is a reference helper an adopter selects, ejects
1617
|---|---|---|---|
1718
| 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` |
1819
| 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/` |
19-
| Kotlin | `KotlinEntityGenerator` (+ `KotlinValidatorGenerator`) | plain Jackson-compatible data classes per entity and value object | `server/java/codegen-kotlin/src/main/kotlin/com/metaobjects/generator/kotlin/` |
20+
| Kotlin | `KotlinEntityGenerator` | plain Jackson-compatible data classes per entity and value object | `server/java/codegen-kotlin/src/main/kotlin/com/metaobjects/generator/kotlin/` |
2021
| 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` |
2122
| Python | the `entity` generator | Pydantic models (no ORM of any kind) | `server/python/src/metaobjects/codegen/generator_registry.py` |
2223

@@ -63,6 +64,24 @@ code from the shapes.
6364
consumer's serializer settings (the byte-identical REST wire is a property of the *generated
6465
routes*, gated by `fixtures/api-contract-conformance/`). Check it in the wedge.
6566

67+
- **Reporting** (`docs/features/reporting.md`, metamodel 1.1; relative `startOf` windows 1.2): `dimension.*`,
68+
`measure.*`, `segment.filter` and `object.report` load and validate in all five ports. A report with
69+
a read-only `source.rdb @kind: view` is lowered to a SQL view by `meta migrate` (Postgres, SQLite,
70+
D1; MySQL SQL from `buildReportViews`) and every port's generators serve it as one read-only list
71+
route (rows past a 10,000 cap answer `report_too_large`). The TypeScript `cube-model` reference
72+
generator exports it to Cube. TanStack gets a list hook only: no grid or form for a report.
73+
- **Requirements** (`docs/features/requirements.md`): `requirement.functional` / `.architectural`
74+
load in all five ports and the `verify` gate runs in each. The strict form is
75+
`--require-implementers` (TS, Python, C#), `-Dmeta.verify.requireImplementers=true` (Java/Kotlin),
76+
or `META_REQUIRE_IMPLEMENTERS=1`. A green run proves links resolve, not that a claim is true.
77+
- **Wire setting**: `"wire": {"decimals", "nullMembers"}` in `.metaobjects/config.json`, read by every
78+
port's codegen. Default `native`: each language's standard JSON (C#/Java/Kotlin decimals as numbers,
79+
Python/TypeScript as strings). `decimals: "string"` + `nullMembers: "omit"` gives the identical
80+
cross-port form (`docs/features/api-contract.md`, "The wire setting"). Physical names default to
81+
`snake_case` in every port via `naming` (`literal` keeps field names).
82+
- **Eject** works in every port (`meta eject`, `metaobjects eject`, `mvn metaobjects:eject`,
83+
`dotnet meta eject`); documentation pages are generators in the generator list in every port.
84+
6685
**Full-stack caps per port:**
6786
- **Schema pillar** (`meta migrate`, `verify --db`): Node `meta` CLI only; Postgres, SQLite, D1
6887
only. Any other database: out for that database; data access unaffected.
@@ -73,7 +92,7 @@ code from the shapes.
7392
the existing ORM sits behind unchanged), payload records, output parsers. Entities stay
7493
hand-written on this lane. `mvn metaobjects:generate` / `:verify` (no live-DB mode).
7594
- **Kotlin/JVM**: entity + Exposed table + Spring controller + payload + relations + filter
76-
allowlist + validators + output parsers.
95+
allowlist + a startup validator that checks the Exposed tables against the model (not field validation) + output parsers.
7796
- **C#**: EF Core entities + `AppDbContext` + CRUD minimal-API routes + render/payload/verify via
7897
`dotnet meta`; no metadata-driven runtime tier; no migrate surface.
7998
- **Python**: Pydantic + router + payload/parsers + `ObjectManager` runtime; the consumer wires the

0 commit comments

Comments
 (0)