@metaobjectsdev/sdk 0.23.0 → 0.23.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -47,9 +47,15 @@ line: *would this sentence have to change if the code changed but the model did
47
47
  is `notes`.
48
48
 
49
49
  **Hierarchy is nesting, and links live at the bottom.** L1 solution, L2 segment, L3
50
- service — these never reference the model. **L4** binds an object, **L5** binds a field,
51
- view or identity. `implementedBy` above L4 is an error. Regrouping *moves* a node; it does
52
- not edit a parent string.
50
+ service — these never reference the model. **L4** binds a declared top-level node an
51
+ `object.*` **or a `template.*`** and **L5** binds a member of one: a field, view,
52
+ validator, identity, or a template's child. `implementedBy` above L4 is an error.
53
+ Regrouping *moves* a node; it does not edit a parent string.
54
+
55
+ Claim your prompts. A `template.prompt` is a model node realising a capability exactly as
56
+ an entity is, and it is the node whose retirement is hardest to see later — a removed
57
+ prompt leaves no table behind. A prompt estate with no requirement entries is the same
58
+ blind spot this whole mechanism exists to close.
53
59
 
54
60
  **L1–L3 are levels of abstraction and ownership in the problem domain** — whose need is
55
61
  this, and at what altitude — and are NEVER a directory, package, deployable or module.
@@ -35,9 +35,26 @@ mechanism exists to preserve.
35
35
  | `@implementedBy` above the L4 link floor | 1 |
36
36
  | live `requirement.architectural` claimed by nothing | 1 |
37
37
  | `@verifiedBy` naming a test that exists nowhere | 1 |
38
+ | `@verifiedBy` naming a name found only in an **unrecognised** test file | 0 (warning) |
38
39
  | `@verifiedBy` naming a test that is **skipped** | 0 (warning) |
39
40
  | an entity no requirement claims | 0 (warning) |
40
41
 
42
+ ## What counts as a test file is YOUR project's call
43
+
44
+ The scan ships patterns for jest/vitest/bun, JUnit, Maven Failsafe (`*IT`), xUnit/NUnit,
45
+ pytest and Kotlin. Those are a convenience, **not an authority** — a built-in list is a guess
46
+ about your repository, and a wrong guess reports a real test as a broken claim. Declare your
47
+ conventions and they are added to the built-ins:
48
+
49
+ ```ts
50
+ // metaobjects.config.ts
51
+ export default defineConfig({ verify: { testFiles: ["**/*IT.kt", "**/*.feature"] } });
52
+ ```
53
+
54
+ If a named test is missing from the corpus but present in some other source file, `verify`
55
+ warns and names that file rather than failing — an unrecognised convention is the tool's
56
+ ignorance, not your mistake.
57
+
41
58
  ## What a green run does NOT prove
42
59
 
43
60
  It proves **referential integrity**: statuses parse, levels are in range, links sit at or
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metaobjectsdev/sdk",
3
- "version": "0.23.0",
3
+ "version": "0.23.1",
4
4
  "description": "Workspace helpers and agent-docs utilities for MetaObjects projects.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -56,7 +56,7 @@
56
56
  "access": "public"
57
57
  },
58
58
  "dependencies": {
59
- "@metaobjectsdev/metadata": "0.23.0",
59
+ "@metaobjectsdev/metadata": "0.23.1",
60
60
  "zod": "^3.23.0"
61
61
  },
62
62
  "devDependencies": {