@cratis/pi 7.31.0 → 7.33.0
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.
- package/package/corpus/skills/cratis-screenplay-automations-and-translations/SKILL.md +2 -2
- package/package/corpus/skills/cratis-screenplay-automations-and-translations/references/audit-format.md +1 -1
- package/package/corpus/skills/cratis-screenplay-automations-and-translations/references/automation-patterns.md +2 -2
- package/package/corpus/skills/cratis-screenplay-automations-and-translations/references/provenance.md +3 -3
- package/package/corpus/skills/cratis-screenplay-automations-and-translations/references/public-events-and-direction.md +2 -2
- package/package/corpus/skills/cratis-screenplay-captures-and-reactions/SKILL.md +2 -2
- package/package/corpus/skills/cratis-screenplay-captures-and-reactions/references/invocation-identity.md +2 -2
- package/package/corpus/skills/cratis-screenplay-command-surface/SKILL.md +8 -6
- package/package/corpus/skills/cratis-screenplay-command-surface/references/compliance.md +40 -0
- package/package/corpus/skills/cratis-screenplay-command-surface/references/context.md +1 -1
- package/package/corpus/skills/cratis-screenplay-command-surface/references/enum-numbers.md +93 -0
- package/package/corpus/skills/cratis-screenplay-command-surface/references/generated-values-and-responses.md +3 -4
- package/package/corpus/skills/cratis-screenplay-event-modeling/SKILL.md +3 -2
- package/package/corpus/skills/cratis-screenplay-event-modeling/references/parsed-not-runnable.md +1 -1
- package/package/corpus/skills/cratis-screenplay-legacy-extraction/SKILL.md +4 -2
- package/package/corpus/skills/cratis-screenplay-legacy-extraction/references/generate-notes.md +71 -3
- package/package/corpus/skills/cratis-screenplay-model-authoring/SKILL.md +25 -25
- package/package/corpus/skills/cratis-screenplay-model-authoring/references/language-reference.md +6 -0
- package/package/corpus/skills/cratis-screenplay-model-authoring/references/mcp-loop.md +5 -0
- package/package/corpus/skills/cratis-screenplay-model-authoring/references/mcp-tools.md +36 -8
- package/package/corpus/skills/cratis-screenplay-model-authoring/references/property-links.md +126 -0
- package/package/corpus/skills/cratis-screenplay-model-authoring/references/screen-authoring-workflow.md +3 -4
- package/package/corpus/skills/cratis-screenplay-model-authoring/verification.json +1 -1
- package/package/corpus/skills/cratis-screenplay-model-review/SKILL.md +1 -1
- package/package/corpus/skills/cratis-screenplay-render-and-gap-fill/SKILL.md +6 -5
- package/package/corpus/skills/cratis-screenplay-render-and-gap-fill/references/gap-fill-handoff.md +2 -2
- package/package/corpus/skills/cratis-screenplay-scenario-coverage/references/spec-forms-by-mode.md +3 -3
- package/package/corpus/skills/cratis-screenplay-specifications/SKILL.md +1 -1
- package/package/corpus/skills/cratis-screenplay-specifications/references/examples-and-routes.md +2 -2
- package/package/corpus/skills/cratis-screenplay-streams-and-consistency/SKILL.md +5 -2
- package/package/corpus/skills/cratis-screenplay-streams-and-consistency/references/evolution.md +17 -0
- package/package/corpus/skills/cratis-screenplay-streams-and-consistency/references/stream-patterns.md +1 -1
- package/package/corpus/skills/cratis-screenplay-toolchain/SKILL.md +15 -6
- package/package/corpus/skills/cratis-screenplay-toolchain/references/cheat-sheet.md +6 -3
- package/package/corpus/skills/cratis-screenplay-toolchain/references/diagnostics.md +21 -2
- package/package/corpus/skills/cratis-screenplay-toolchain/references/doc-contradictions.md +2 -2
- package/package/corpus/skills/cratis-screenplay-toolchain/references/executable-subset.md +9 -3
- package/package/corpus/skills/cratis-screenplay-toolchain/references/production-routes-and-filters.md +1 -1
- package/package/corpus/skills/cratis-screenplay-toolchain/references/provenance.md +1 -1
- package/package/corpus/skills/cratis-screenplay-toolchain/references/renderable-subset.md +5 -4
- package/package/corpus/skills/cratis-screenplay-toolchain/references/screenplay-contract-exceptions.json +1 -1
- package/package/corpus/skills/cratis-screenplay-toolchain/references/screenplay-contract.json +1092 -17
- package/package/corpus/skills/cratis-screenplay-toolchain/references/screenplay-contract.version +1 -1
- package/package/corpus/skills/cratis-screenplay-toolchain/references/sources-and-streams.md +1 -1
- package/package/corpus/skills/cratis-screenplay-toolchain/references/traps.md +3 -3
- package/package/corpus/skills/cratis-screenplay-toolchain/references/verdicts.md +4 -4
- package/package/corpus/skills/cratis-screenplay-toolchain/references/versions.md +32 -17
- package/package/corpus/skills/cratis-screenplay-toolchain/verification.json +3 -1
- package/package/corpus/skills/cratis-screenplay-ui-composition/references/screen-composition-contract.md +2 -2
- package/package/corpus/skills/cratis-stage-rendering-and-sandbox/SKILL.md +8 -9
- package/package/corpus/skills/cratis-stage-rendering-and-sandbox/references/admission.md +4 -5
- package/package/corpus/skills/cratis-stage-rendering-and-sandbox/references/case-tables-and-whole-numbers.md +2 -2
- package/package/corpus/skills/cratis-stage-rendering-and-sandbox/verification.json +1 -1
- package/package.json +1 -1
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
- Identity, compliance and processing views
|
|
14
14
|
- Evidence-pinned production repairs
|
|
15
15
|
- Scoped diagnostics and completeness
|
|
16
|
+
- Property-reference evidence
|
|
16
17
|
- Dependencies and intent inventories
|
|
17
18
|
- Specification obligations and advisory smells
|
|
18
19
|
- Semantic revision comparison
|
|
@@ -37,9 +38,9 @@ report unsupported adapters or drift.
|
|
|
37
38
|
|
|
38
39
|
After `initialize` and `notifications/initialized`, discover current tools and
|
|
39
40
|
argument schemas with `tools/list`; do not hard-code counts or infer arguments
|
|
40
|
-
from these short descriptions.
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
from these short descriptions. Additions follow the released
|
|
42
|
+
`Documentation/screenplay/mcp/reference.md`; historical tool counts are not
|
|
43
|
+
current capability evidence.
|
|
43
44
|
The connection procedure, edit routes, identity state and failure handling are in
|
|
44
45
|
the [MCP loop](mcp-loop.md).
|
|
45
46
|
|
|
@@ -50,7 +51,7 @@ the [MCP loop](mcp-loop.md).
|
|
|
50
51
|
| Source and validation | `diagnostics`, `read-document`, `merged-document`, `syntax-schema` | Read exact source or typed structure and diagnose problems |
|
|
51
52
|
| Workspace inspection | `open-workspace`, `read-workspace`, `read-ast`, `workspace-state`, `export-workspace`, `repair-capabilities` | Obtain current identities, handles, readiness, code attachment requirements, source-map locations, durable-state status and the repair catalog |
|
|
52
53
|
| Visual (MCP-Apps hosts only) | `visualize-model` | Draw the board for the model or a `proposalId`; its `sketch` argument previews a what-if of whole documents. Reads only |
|
|
53
|
-
| Planning | `propose-source`, `propose-ast`, `propose-rename`, `propose-repair`, `propose-extract-inline-event`, `propose`, `recommend-layout`, `expand-layout` | Produce validated, reviewable candidates without writing them |
|
|
54
|
+
| Planning | `propose-source`, `propose-ast`, `propose-rename`, `propose-repair`, `propose-number-enum-members`, `propose-extract-inline-event`, `propose`, `recommend-layout`, `expand-layout` | Produce validated, reviewable candidates without writing them |
|
|
54
55
|
| Review | `read-proposal`, `discard-proposal` | Inspect exact changes, dropped comments and proposed attachments, or abandon a connection-local proposal |
|
|
55
56
|
| Effects | `apply`, `recover-workspace` | Apply an accepted plan or explicitly recover an interrupted write |
|
|
56
57
|
|
|
@@ -146,6 +147,24 @@ then explicitly confirm Apply. Dirty/untitled buffers and evidence drift refuse;
|
|
|
146
147
|
uncertain Apply outcomes are never retried. Restricted Mode cannot launch it.
|
|
147
148
|
Monaco has no production-repair host bridge. See v4.125.0 `vscode.md`.
|
|
148
149
|
|
|
150
|
+
### Number enum members (4.137.0)
|
|
151
|
+
|
|
152
|
+
Find the unnumbered enum's `ConceptSyntax` handle with `read-ast`; pass it as
|
|
153
|
+
`subject` to `propose-number-enum-members` with `expectedRevision`,
|
|
154
|
+
`expectedCatalogRevision` and `formatting: "CanonicalizeTouchedDocuments"`.
|
|
155
|
+
Optional `validation` and `includeContent` follow ordinary proposals. It writes
|
|
156
|
+
`= 0..n-1` in current order, never renumbers numbered/mixed/invalid enums, and
|
|
157
|
+
requires retained comments/catalog assignments and unchanged executable bytes
|
|
158
|
+
when the original binds. Review with `read-proposal`, then `apply` with before
|
|
159
|
+
revisions; proposing writes nothing. Positional pins preserve executable version,
|
|
160
|
+
bytes and revision. Non-positional numbers require v12 (4.139.0) consumer admission.
|
|
161
|
+
|
|
162
|
+
Opt into `diagnostics` `checks: "enum-pinning"` (or `PLAY0671` or `all`) for an
|
|
163
|
+
Information hint on unnumbered enums used by event properties, including composite
|
|
164
|
+
uses. Ordinary compilation does not report it. This is a refactoring, not a
|
|
165
|
+
correctness repair; PLAY0667–0670 require an author decision, with no automatic repair.
|
|
166
|
+
Source: `v4.139.0:Documentation/screenplay/mcp/authoring-tools.md`.
|
|
167
|
+
|
|
149
168
|
## Syntax-only constructs through the MCP
|
|
150
169
|
|
|
151
170
|
The 4.66.0/4.68.0 negative probes below are historical. At 4.125.0,
|
|
@@ -190,9 +209,8 @@ persona/policy and table/case/caseParameter provenance. Neither view executes.
|
|
|
190
209
|
## Identity, compliance and processing views
|
|
191
210
|
|
|
192
211
|
Screenplay v4.127.0 `mcp/reference.md` and `authoring-tools.md` describe these
|
|
193
|
-
additions (checked at 4.127.0)
|
|
194
|
-
|
|
195
|
-
4.131.0, so these source objects are available there too.
|
|
212
|
+
additions (checked at 4.127.0). Discover installed schemas; current compiler
|
|
213
|
+
and bundle pins are in `cratis-screenplay-toolchain/references/versions.md`.
|
|
196
214
|
|
|
197
215
|
- Identity/detail summaries expose declared sources; `$identity` has its own
|
|
198
216
|
expression node. The block alone stays executable-ready, but executable reads
|
|
@@ -248,6 +266,15 @@ They opt into findings, not execution proof. Whole-source errors skip them; repo
|
|
|
248
266
|
`completenessStatus` as skipped, never passed. `completenessCoverage` states their
|
|
249
267
|
limits. Continue with `expectedSourceRevision`.
|
|
250
268
|
|
|
269
|
+
## Property-reference evidence
|
|
270
|
+
|
|
271
|
+
From 4.138.0, `find-references` and `dependencies` accept `kind: "Property"`
|
|
272
|
+
and `Owner.member`, or historical event `Owner.generationN.member`. Before a
|
|
273
|
+
rename/removal, read [property links](property-links.md) for exact query/result
|
|
274
|
+
shapes, roles, direct counterpart traversal, revision paging and `complete: false`
|
|
275
|
+
with `reasons`. Incomplete evidence is never a successful empty list. These tools
|
|
276
|
+
inspect authored links, not code execution or a transitive runtime graph.
|
|
277
|
+
|
|
251
278
|
## Dependencies and intent inventories
|
|
252
279
|
|
|
253
280
|
`dependency-graph` edges point consumer → producer. Views: `edges`, `cycles`,
|
|
@@ -326,7 +353,8 @@ the open model as candidate:
|
|
|
326
353
|
}
|
|
327
354
|
```
|
|
328
355
|
|
|
329
|
-
These source objects require Screenplay 4.131.0;
|
|
356
|
+
These source objects require Screenplay 4.131.0; compare the bundled compiler
|
|
357
|
+
in `cratis-screenplay-toolchain/references/versions.md` with that minimum
|
|
330
358
|
(previous CLI 3.46.1 bundled 4.130.0).
|
|
331
359
|
Discover installed schemas rather than assuming bundle parity.
|
|
332
360
|
Check that the registered worktree is checked out at the intended commit and
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
<!-- Copyright (c) Cratis. All rights reserved. -->
|
|
2
|
+
<!-- Licensed under the MIT license. See LICENSE file in the project root for full license information. -->
|
|
3
|
+
|
|
4
|
+
# Inspect a property's chain before changing it
|
|
5
|
+
|
|
6
|
+
## Contents
|
|
7
|
+
|
|
8
|
+
- Address and query
|
|
9
|
+
- Read evidence, not just a count
|
|
10
|
+
|
|
11
|
+
Screenplay 4.138.0 released property-path evidence in `find-references` and
|
|
12
|
+
`dependencies`; this guidance was checked against 4.139.0. Discover installed
|
|
13
|
+
`tools/list`: CLI 3.53.1's 4.137.0 bundle predates it. These are read-only
|
|
14
|
+
inspection tools, not a property-change planner.
|
|
15
|
+
|
|
16
|
+
## Address and query
|
|
17
|
+
|
|
18
|
+
Use `kind: "Property"`, case-sensitive. Append the member to its owner's exact
|
|
19
|
+
logical address: `Owner.member`. For an event this selects the current generation;
|
|
20
|
+
`Owner.generationN.member` selects a historical shape, whose target details carry
|
|
21
|
+
`historical: true`. Properties are not returned in declaration listings: locate
|
|
22
|
+
the owner and inspect its properties first.
|
|
23
|
+
|
|
24
|
+
On the command-surface [enum example](../../cratis-screenplay-command-surface/references/enum-numbers.md),
|
|
25
|
+
first inspect the event with `find-references`:
|
|
26
|
+
|
|
27
|
+
```json
|
|
28
|
+
{
|
|
29
|
+
"address": "Invoicing.Issuing.SendingInvoice.InvoiceSent",
|
|
30
|
+
"kind": "Event"
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
At 4.139.0 this returns two references (`produces`, `thenEvent`), with top-level
|
|
35
|
+
`totalCount: 2`, `references` and empty `ambiguous`, `incomplete`, `wrongKind`
|
|
36
|
+
arrays. The event response has no `complete` field. Query its property separately:
|
|
37
|
+
|
|
38
|
+
```json
|
|
39
|
+
{
|
|
40
|
+
"address": "Invoicing.Issuing.SendingInvoice.InvoiceSent.status",
|
|
41
|
+
"kind": "Property"
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Then query direct mapping counterparts with `dependencies`:
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"address": "Invoicing.Issuing.SendingInvoice.InvoiceSent.status",
|
|
50
|
+
"kind": "Property",
|
|
51
|
+
"direction": "outgoing"
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Both tools accept `offset`, `limit` and `expectedSourceRevision`; echo the first
|
|
56
|
+
response's `sourceRevision` on continuation pages. `dependencies` additionally
|
|
57
|
+
accepts `direction: "incoming"` (default), `descendants` and `document`. It follows
|
|
58
|
+
**direct mapping counterparts only**, not a transitive property chain or runtime
|
|
59
|
+
impact. Query each resolved counterpart separately when walking a longer chain.
|
|
60
|
+
|
|
61
|
+
## Read evidence, not just a count
|
|
62
|
+
|
|
63
|
+
`find-references` returns top-level `references`, `ambiguous`, `incomplete`,
|
|
64
|
+
`complete`, `totalCount`, `offset`, `nextOffset` and `coverage`. Ambiguous/incomplete
|
|
65
|
+
rows contain `reference` and `candidates`. `dependencies` instead has
|
|
66
|
+
`page.items`, each carrying `reference`, `resolution` and `targets`, with paging
|
|
67
|
+
inside `page`; `complete` and `coverage` stay at the top level.
|
|
68
|
+
|
|
69
|
+
Each property reference retains `owner`, `location`, `role`, `reasons` and
|
|
70
|
+
`otherEnd` (the link's resolved other end, or null). For outgoing dependencies,
|
|
71
|
+
navigate `targets`, not an assumed interpretation of `otherEnd`. Evidence roles are:
|
|
72
|
+
|
|
73
|
+
| Role | Meaning |
|
|
74
|
+
| --- | --- |
|
|
75
|
+
| `mapping-source`, `mapping-target` | Explicit production, capture append or projection mapping end |
|
|
76
|
+
| `automap` | Derived case-insensitive projection link |
|
|
77
|
+
| `condition` | Declarative condition, including query filters and policy readers |
|
|
78
|
+
| `key` | Lookup/read, projection/join/removal/parent, constraint or stream-id key |
|
|
79
|
+
| `screen-binding` | Screen/form field use |
|
|
80
|
+
| `fixture`, `assertion` | Specification/example assignment or expected value |
|
|
81
|
+
| `response` | Command response property source |
|
|
82
|
+
| `opaque` | Text names the property; code is not resolved |
|
|
83
|
+
| `unclassified` | Conservative backstop found a name occurrence outside classified links |
|
|
84
|
+
|
|
85
|
+
### Observed result on the compiled example (4.139.0)
|
|
86
|
+
|
|
87
|
+
The property `find-references` response has `success: true`, `complete: false`,
|
|
88
|
+
`totalCount: 3`, `nextOffset: null`: two resolved references (`mapping-target`
|
|
89
|
+
on the command's `status = status`, and `assertion` on `then InvoiceSent`),
|
|
90
|
+
and one `incomplete` entry. Its `reference.role` is `unclassified`, located at the
|
|
91
|
+
specification's command-input `status` assignment, with `reference.reasons`:
|
|
92
|
+
|
|
93
|
+
```json
|
|
94
|
+
["Property name occurs in referencing declaration text without a classified link."]
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Outgoing `dependencies` also reports `success: true`, `complete: false` and
|
|
98
|
+
`page.totalCount: 1`. Its resolved `page.items[0]` has a `mapping-source`
|
|
99
|
+
reference; `targets[0].address` is
|
|
100
|
+
`Invoicing.Issuing.SendingInvoice.SendInvoice.status`, while the reference's
|
|
101
|
+
`otherEnd.address` is the queried event property. The property's completeness
|
|
102
|
+
covers all indexed evidence even when the chosen direction's page has only a
|
|
103
|
+
resolved link. The workspace had `sourceSuccess: true`, no source diagnostics
|
|
104
|
+
and `readiness.executableReady: true`: compilation success does not imply
|
|
105
|
+
complete property evidence.
|
|
106
|
+
|
|
107
|
+
**`complete: false` is never a successful empty list.** Inspect every ambiguous
|
|
108
|
+
or incomplete row and its `reasons`/candidates, even when resolved `references`
|
|
109
|
+
is empty. `success` describes compilation, not completeness. Opaque occurrences,
|
|
110
|
+
unresolved counterparts, nested composite paths, legacy command reads and external
|
|
111
|
+
source items can leave incomplete evidence. The backstop counts whole-word names
|
|
112
|
+
case-insensitively in relevant typed source and comments, including quoted text;
|
|
113
|
+
same-named properties in unrelated declarations do not affect completeness.
|
|
114
|
+
External code contents and registrations remain outside coverage even with
|
|
115
|
+
`complete: true`; authored links do not prove executable admission.
|
|
116
|
+
|
|
117
|
+
Before a rename/removal: pin the revision, inspect incoming readers and outgoing
|
|
118
|
+
counterparts, page to completion, resolve uncertainties, then choose the supported
|
|
119
|
+
identity-safe edit route with the connection owner. Never infer safe deletion from
|
|
120
|
+
zero resolved hits or edit every same-named field. An event-property change still
|
|
121
|
+
needs a persisted-contract evolution decision; the catalog is not storage evidence.
|
|
122
|
+
|
|
123
|
+
Source/output authority: `v4.139.0:Documentation/screenplay/mcp/reference.md`
|
|
124
|
+
(property links), `Source/DotNET/Screenplay.Mcp/McpPropertyDependencies.cs`,
|
|
125
|
+
`McpToolSchemas.cs`, and decision 0044's released prerequisite index. The planner
|
|
126
|
+
phases in that decision are not release evidence.
|
|
@@ -148,10 +148,9 @@ Historical verified public vector and executable checks:
|
|
|
148
148
|
`cratis/stage:4.52.0` and which bundled Screenplay 4.127.0. Published since,
|
|
149
149
|
and not verified by this vector: Scene 4.17.0, Screenplay 4.133.1, Stage 4.64.0,
|
|
150
150
|
previous CLI 3.46.1 (bundling Screenplay 4.130.0, then-default Stage 4.52.0) and
|
|
151
|
-
Studio 0.152.2. Current pins
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
3.50.0/Screenplay 4.131.0 claims;
|
|
151
|
+
Studio 0.152.2. Current pins: `cratis-screenplay-toolchain/references/versions.md`.
|
|
152
|
+
Compiler claims from this `cratis` probe are 4.127.0 claims, not current
|
|
153
|
+
bundled-compiler claims;
|
|
155
154
|
- fixture root: `Source/DotNET/Screenplay.CanonicalCorpus/Corpus/ScreenComposition/v1/source/folder`
|
|
156
155
|
in the Screenplay repository;
|
|
157
156
|
- Screenplay repo tool (available checkout): `dotnet run --project Source/DotNET/Tool
|
|
@@ -31,7 +31,7 @@ adapted to `.play` declarations (`references/provenance.md`).
|
|
|
31
31
|
|---|---|---|
|
|
32
32
|
| Screenplay | `v4.66.0` (`c89198b`) | MCP catalog (29 tools: `describe-application`, `search-declarations`, `dependencies`, `find-assertion-gaps`, `read-workspace`, `declaration-details`) in `Source/DotNET/Screenplay.Mcp/McpToolCatalog.cs`; diagnostics PLAY0029, PLAY0191, PLAY0268, PLAY0271, PLAY0350, PLAY0381, PLAY0469 in `Source/DotNET/Screenplay/Diagnostics/DiagnosticCodes.cs`; decision 0008 (one data subject per event) |
|
|
33
33
|
| Screenplay | `v4.127.0` | `find-specification-obligations` (SPEC001–SPEC008 authored presence), `find-modeling-smells` (SMELL001–SMELL005 advisory questions); neither proves executed behavior or complete lineage |
|
|
34
|
-
| Screenplay | `v4.131.0` | `semantic-diff` source objects and revision-pinned pages: `Source/DotNET/Screenplay.Mcp/{McpRevisionDiff,McpWorkspaces.Comparison,McpToolCatalog}.cs`, `Documentation/screenplay/mcp/reference.md`; previous CLI 3.46.1 predates these;
|
|
34
|
+
| Screenplay | `v4.131.0` | `semantic-diff` source objects and revision-pinned pages: `Source/DotNET/Screenplay.Mcp/{McpRevisionDiff,McpWorkspaces.Comparison,McpToolCatalog}.cs`, `Documentation/screenplay/mcp/reference.md`; previous CLI 3.46.1 predates these; see pin table below |
|
|
35
35
|
| cratis CLI | `v3.28.3` | bundles Screenplay 4.66.0 and Stage 4.24.2; see the toolchain skill |
|
|
36
36
|
|
|
37
37
|
The full pin table lives in `cratis-screenplay-toolchain` `references/versions.md`; do not copy
|
|
@@ -25,9 +25,9 @@ Version pins live once in `cratis-screenplay-toolchain` `references/versions.md`
|
|
|
25
25
|
|
|
26
26
|
| Source | Pin | Used for |
|
|
27
27
|
| --- | --- | --- |
|
|
28
|
-
| cratis CLI | `
|
|
29
|
-
| Stage | `4.67.0
|
|
30
|
-
| Screenplay |
|
|
28
|
+
| cratis CLI | See `cratis-screenplay-toolchain/references/versions.md` | Historical source check at `v3.50.0:Directory.Packages.props`: Stage 4.67.0, Screenplay 4.131.0, `Cratis.Arc.Screenplay` 22.54.0, Chronicle 19.32.0, Fundamentals 7.22.8; default runtime image `cratis/stage:4.67.0`. Previous CLI 3.46.1 used Stage 4.52.0/Screenplay 4.130.0. No new render/browser probe. UI-profile rejection (`CLI-RENDER-007` to `CLI-RENDER-010`) and render-then-recover shipped in 3.41.0 (Cratis/cli#301). Historical screens release vector: 3.40.7 (`af9f18e`) with `cratis/stage:4.51.1`. Reading baselines: 3.40.3, 3.39.0 and 3.28.3 (`8b43fef`) |
|
|
29
|
+
| Stage | See `cratis-screenplay-toolchain/references/versions.md` | Historical source check: 4.67.0 under CLI 3.50.0, not executed as a new vector. Previous Stage 4.52.0 was executed on CLI 3.43.0. Admission (`STAGE-ESM-*`, and `PLAY0268` render refusals surfaced by the CLI), ownership manifest, `Customizations/` seams, Debug-only specifications, guarded actions (`STAGE-SCENE-ACTION-001`) and interactions (`STAGE-SCENE-INTERACTION-001`) were source-checked at 4.51.3. Older baselines: 4.49.5, 4.43.0 and `v4.24.2` (`32dcac4`) |
|
|
30
|
+
| Screenplay | See `cratis-screenplay-toolchain/references/versions.md` | Standalone compiler for V1 to V3; binding codes `PLAY0268` and code-attachment rules were read at `v4.66.0`. Historical CLI 3.41.0 probes used bundled 4.114.0; check the pinned bundled compiler before making `cratis` claims |
|
|
31
31
|
| Rendered apps (historical check) | Arc `22.50.5`, Chronicle `19.32.0`, Scene packages | Stage 4.51.3 scaffold; `[ProtectedDecision]` / `DecisionRead<T>` available to gap-fill, not emitted enforcement. Embedded reverse extraction disabled; verify generated packages before claiming exact Scene runtime parity |
|
|
32
32
|
|
|
33
33
|
Historical facts retain their checked tags; current pins are source-checked, not new runtime probes.
|
|
@@ -77,8 +77,9 @@ the model, hand-write the command and its response with the model (and its fixtu
|
|
|
77
77
|
specifications) as the contract, and report V3 from the standalone tool and V5 as `not run: no render`.
|
|
78
78
|
|
|
79
79
|
Models with event sources, streams or command routes bind and reference-execute as ESM v8 on standalone
|
|
80
|
-
Screenplay 4.125.0, so report V3 and V4 from that tool. Previous CLI 3.46.1 refused above v7 with CLI-RENDER-004.
|
|
81
|
-
|
|
80
|
+
Screenplay 4.125.0, so report V3 and V4 from that tool. Previous CLI 3.46.1 refused above v7 with CLI-RENDER-004. The pinned CLI/Stage pair
|
|
81
|
+
(`cratis-screenplay-toolchain/references/versions.md`) reaches v8 route checks
|
|
82
|
+
and construct admission through v10. Public publication,
|
|
82
83
|
foreign events/event captures and v10 reaction identity/filters/production overrides
|
|
83
84
|
still receive typed refusals; reducer filters render. Keep refused scope as case A/C,
|
|
84
85
|
never infer target support from binding. Read Stage's `references/admission.md` and
|
package/package/corpus/skills/cratis-screenplay-render-and-gap-fill/references/gap-fill-handoff.md
CHANGED
|
@@ -77,8 +77,8 @@ not bind a modeled reaction or capture. Case C (no generated application): there
|
|
|
77
77
|
composition conventions (`rules/vertical-slices.md`, `cratis-chronicle-reactor`).
|
|
78
78
|
Declare the trusted actor with reaction `runs as system role "<Role>"`
|
|
79
79
|
(standalone 4.125.0, ESM v10); `given caller` is not an invocation actor.
|
|
80
|
-
Historical CLI 3.41.0's older compiler rejected the syntax. CLI
|
|
81
|
-
reaches v10 construct admission but still refuses reaction identity
|
|
80
|
+
Historical CLI 3.41.0's older compiler rejected the syntax. The pinned CLI/Stage pair
|
|
81
|
+
(`cratis-screenplay-toolchain/references/versions.md`) reaches v10 construct admission but still refuses reaction identity
|
|
82
82
|
(STAGE-ESM-034); previous CLI 3.46.1 admitted through v7 only. Gap-fill retains the declared role and uses Arc
|
|
83
83
|
`[ExecuteCommandsAsSystem]` for returned commands. Checked model and diagnostics:
|
|
84
84
|
captures-and-reactions `references/invocation-identity.md`.
|
package/package/corpus/skills/cratis-screenplay-scenario-coverage/references/spec-forms-by-mode.md
CHANGED
|
@@ -4,8 +4,8 @@ The subsets themselves (what binds, what renders) are owned by `cratis-screenpla
|
|
|
4
4
|
(its executable and renderable subset references); version facts by its `references/versions.md`. This file
|
|
5
5
|
says what that means for writing specs. A form outside the chosen mode is never deleted from a
|
|
6
6
|
design model: keep it and record the gap. The detailed Stage 4.24.x rows below
|
|
7
|
-
retain historical admission evidence; current pins are
|
|
8
|
-
|
|
7
|
+
retain historical admission evidence; current pins are in
|
|
8
|
+
`cratis-screenplay-toolchain/references/versions.md`. Run actual target admission instead of assuming old restrictions carry over.
|
|
9
9
|
Typed example/override forms: `cratis-screenplay-specifications`
|
|
10
10
|
`references/examples-and-routes.md`.
|
|
11
11
|
|
|
@@ -23,7 +23,7 @@ Typed example/override forms: `cratis-screenplay-specifications`
|
|
|
23
23
|
| Command spec listing reaction cascade events | yes (v6 semantics) | false PLAY0285 on a cratis before 3.28.2 bundle only; see SKILL.md "Version skew" | no (no reactions) |
|
|
24
24
|
| `generated <name> = <value>` under `when`, `then returns` (ESM v7) | yes | yes on standalone Screenplay 4.68.0 or later; not on the 4.66.0 bundled in cratis 3.28.x (`PLAY0268`) | historically no at Stage 4.24.x; check current target admission |
|
|
25
25
|
| `then events in any order` | yes | yes | yes |
|
|
26
|
-
| Event `stream` / `no stream`, typed `for` and stream ids | yes | ESM v8 at 4.125.0 | CLI
|
|
26
|
+
| Event `stream` / `no stream`, typed `for` and stream ids | yes | ESM v8 at 4.125.0 | The pinned CLI reaches Stage route checks (toolchain `references/versions.md`); routed read-model/query replay can still refuse STAGE-ESM-030 |
|
|
27
27
|
| Typed examples and overrides | yes | expanded and type-checked before binding; required fields remain required | depends on expanded contract, not fixture reuse |
|
|
28
28
|
| `given operation ... fails`, `then operation`, `then compensated` | yes | unadmitted PLAY0268 | gap-fill |
|
|
29
29
|
| Refusal branches, `when redelivered`, `then no events` | yes | unadmitted PLAY0268 | gap-fill |
|
|
@@ -280,7 +280,7 @@ For view specifications:
|
|
|
280
280
|
## Verify
|
|
281
281
|
|
|
282
282
|
- [ ] Validate the complete root with warnings as errors, naming tool/version.
|
|
283
|
-
|
|
283
|
+
Standalone pin: `cratis-screenplay-toolchain/references/versions.md`. Run specification examples through
|
|
284
284
|
`screenplay test`; expected unadmitted syntax reports unbound, not passed.
|
|
285
285
|
- [ ] Executable diagnostics are clean too: `PLAY0350`, `PLAY0352`, `PLAY0388`,
|
|
286
286
|
`PLAY0389` and `PLAY0273` are only reported at binding.
|
package/package/corpus/skills/cratis-screenplay-specifications/references/examples-and-routes.md
CHANGED
|
@@ -94,8 +94,8 @@ so UUID casing is immaterial. Composite mappings supply each named part once,
|
|
|
94
94
|
using literals only; encoding escapes `%`/`|` and preserves declaration order.
|
|
95
95
|
Source: v4.127.0 `event-sources.md`, `specifications.md`, `diagnostics.md`.
|
|
96
96
|
|
|
97
|
-
Previous CLI 3.46.1 refused above v7; CLI
|
|
98
|
-
checks through v10. Routed read-model/query replay can still refuse
|
|
97
|
+
Previous CLI 3.46.1 refused above v7; the pinned CLI/Stage pair
|
|
98
|
+
(`cratis-screenplay-toolchain/references/versions.md`) reaches route checks through v10. Routed read-model/query replay can still refuse
|
|
99
99
|
STAGE-ESM-030. Source/reference success never establishes target parity.
|
|
100
100
|
|
|
101
101
|
Command and read-model examples refuse routes (PLAY0526). Effective role and
|
|
@@ -88,7 +88,7 @@ option, mark it `ASSUMED` in the slice or module `documentation` and in the sess
|
|
|
88
88
|
namespace, process-stream routing and concurrency scope apart
|
|
89
89
|
(`references/chronicle-boundaries.md`). Declared `eventsource`/`stream`/`streamId` and
|
|
90
90
|
command/specification routes bind and reference-execute as ESM v8 on 4.125.0.
|
|
91
|
-
CLI
|
|
91
|
+
The pinned CLI (toolchain `references/versions.md`) reaches Stage construct checks through v10; keep the routing
|
|
92
92
|
contract when target admission requires gap-fill. Forms/boundaries:
|
|
93
93
|
toolchain `references/sources-and-streams.md`. A `generated identifier` (ESM v7, standalone 4.68.0; not rendered by Stage yet) is
|
|
94
94
|
generated fresh on every acceptance: it is not a retry identity, and generated values give no
|
|
@@ -128,7 +128,10 @@ option, mark it `ASSUMED` in the slice or module `documentation` and in the sess
|
|
|
128
128
|
`references/compliance.md` for allowed types and the policy/encryption distinction.
|
|
129
129
|
5. **Plan evolution** with `references/evolution.md`: classify each event change (additive,
|
|
130
130
|
meaning change, rename, removal, split or merge) and write its compatibility scenarios before
|
|
131
|
-
editing.
|
|
131
|
+
editing. Pin persisted/public enum member numbers before reordering or removing
|
|
132
|
+
members; never renumber or reuse a published number. Positional pins preserve
|
|
133
|
+
executable bytes; non-positional pins need ESM v12 consumer admission.
|
|
134
|
+
Renames and other identity-affecting edits are made by the identity owner (the
|
|
132
135
|
identity procedure in `cratis-screenplay-modeling-lifecycle`).
|
|
133
136
|
6. **Test ownership and interfaces** with `references/boundaries.md`: ownership interview,
|
|
134
137
|
interface and processor inventory, one real interaction walked across each boundary, coupling
|
package/package/corpus/skills/cratis-screenplay-streams-and-consistency/references/evolution.md
CHANGED
|
@@ -27,6 +27,23 @@ compatibility scenarios below first; the identity owner then applies the change
|
|
|
27
27
|
A test for "generation or new event": a new version must be convertible from the old one
|
|
28
28
|
without inventing facts. If it is not, it is a different event.
|
|
29
29
|
|
|
30
|
+
## Enum identities are stored contracts
|
|
31
|
+
|
|
32
|
+
Unnumbered enums use zero-based declaration positions: a reorder or insertion can
|
|
33
|
+
reinterpret stored numbers. Before reordering or removing members, pin each to its
|
|
34
|
+
**existing stored number**, not its new position. `propose-number-enum-members`
|
|
35
|
+
pins an unnumbered enum to current positions; use it before changing order, only
|
|
36
|
+
when those positions match storage. Never renumber or reuse a published member's
|
|
37
|
+
number. Removing a member still needs replay and mixed-reader compatibility decisions.
|
|
38
|
+
|
|
39
|
+
Numbered members may have sparse or negative unique int32 values, all or none per
|
|
40
|
+
enum. Source authoring shipped in 4.137.0; non-positional numbers bind as ESM v12
|
|
41
|
+
in 4.139.0. Positional pins retain older executable bytes/version. CLI 3.53.1 and
|
|
42
|
+
Stage 4.73.1 bundle 4.137.0 and do not admit v12; keep the pins and report the gap.
|
|
43
|
+
Short-lived input/view-only enums may remain positional. Use opt-in
|
|
44
|
+
`--check enum-pinning` (PLAY0671) to find unnumbered enums used by event properties.
|
|
45
|
+
Syntax/example and source evidence: command-surface [enum numbers](../../cratis-screenplay-command-surface/references/enum-numbers.md).
|
|
46
|
+
|
|
30
47
|
## Compatibility scenarios (write before editing)
|
|
31
48
|
For each changed event, answer in the slice `documentation` or `STATE.md`:
|
|
32
49
|
1. **Replay**: does every projection still build from generation 1 facts? Which value do old
|
|
@@ -216,7 +216,7 @@ Some event stores decide consistency by a query over tagged events instead of on
|
|
|
216
216
|
check to event types, source type or stream (`concurrency` block, Screenplay
|
|
217
217
|
`commands.md`). Legacy concurrency metadata still fails binding (PLAY0271),
|
|
218
218
|
but sources/streams/routes bind and reference-execute as ESM v8 on 4.125.0.
|
|
219
|
-
Route admission does not make a view read protected. CLI
|
|
219
|
+
Route admission does not make a view read protected. The pinned CLI (toolchain `references/versions.md`) reaches Stage construct checks
|
|
220
220
|
through v10; see toolchain `references/versions.md`. Model the stream by business
|
|
221
221
|
identity; when a rule truly needs a cross-stream decision, record it (see
|
|
222
222
|
`consistency-and-concurrency.md`) rather than inventing a construct.
|
|
@@ -22,16 +22,16 @@ files is one application: always check the folder, never one file of it.
|
|
|
22
22
|
|
|
23
23
|
When choosing or upgrading a tool, or checking version-specific capabilities, read `references/versions.md`; it is the only version table, and other skills point to it. For exact diagnostic codes, MCP names/parameters and standalone CLI options, search the large published [references/screenplay-contract.json](references/screenplay-contract.json), pinned by [references/screenplay-contract.version](references/screenplay-contract.version), rather than loading it in full. Locate a diagnostic by its exact `code` (for example `"code": "PLAY0029"`), a tool by its exact `name` (for example `"name": "read-workspace"`), or a command in `cliCommands`; read the matched object for retirement, parameters or options. [references/screenplay-contract-exceptions.json](references/screenplay-contract-exceptions.json) records reasoned exceptions for historical statements; it does not change the current contract.
|
|
24
24
|
|
|
25
|
-
The standalone pin is Screenplay 4.
|
|
26
|
-
|
|
25
|
+
The standalone pin is Screenplay 4.139.0.
|
|
26
|
+
CLI and bundled package pins: `references/versions.md`. The single version table records
|
|
27
27
|
released source evidence and historical probes separately; do not relabel an old
|
|
28
28
|
render/browser result as a probe of the current packages.
|
|
29
29
|
|
|
30
30
|
Historical screens-release evidence: CLI 3.40.7 / Stage 4.51.1 / bundled
|
|
31
31
|
Screenplay 4.114.0 opened the canonical corpus with `executableReady true`
|
|
32
32
|
and the stdio transcript exposed 37 tools; standalone language 4.122.0 was
|
|
33
|
-
recorded in that vector. These retained results are not a rerun on CLI 3.
|
|
34
|
-
or Screenplay 4.
|
|
33
|
+
recorded in that vector. These retained results are not a rerun on CLI 3.53.1
|
|
34
|
+
or Screenplay 4.139.0.
|
|
35
35
|
|
|
36
36
|
## Ground rules
|
|
37
37
|
|
|
@@ -67,7 +67,7 @@ or Screenplay 4.135.0.
|
|
|
67
67
|
| Scope/checks | `--scope <address>`, `--check <names>`; a scoped pass is not whole-application success | Discover installed validation options |
|
|
68
68
|
| Reference execution | `screenplay test <root>` or MCP `run-specifications` | Discover bundled MCP capability; target tests are not V4 |
|
|
69
69
|
| MCP | `screenplay mcp <root>`; discover schemas | `cratis screenplay mcp [root]`; registered by `cratis ai install` |
|
|
70
|
-
| Render version boundary | Binder admission is not Stage admission | CLI
|
|
70
|
+
| Render version boundary | Binder admission is not Stage admission | Pinned CLI (`versions.md`) passes through ESM v10 to Stage construct admission; bound newer models: `CLI-RENDER-004` |
|
|
71
71
|
|
|
72
72
|
Read `references/versions.md` when you need the exact messages, exit codes or the MCP roots bug.
|
|
73
73
|
|
|
@@ -109,7 +109,7 @@ changes with the root folder name.
|
|
|
109
109
|
Stage generated-value/response refusals `STAGE-ESM-028`/`029`, not a blanket
|
|
110
110
|
compiler refusal. Run admission before claiming a particular model renders.
|
|
111
111
|
- **Event sources, streams and routes** bind as ESM v8 at 4.125.0.
|
|
112
|
-
CLI
|
|
112
|
+
The pinned CLI/Stage pair (`references/versions.md`) reaches admission through v10, not blanket
|
|
113
113
|
rendering. Operations and exact numeric source mode remain unadmitted.
|
|
114
114
|
Details: `references/sources-and-streams.md` and `references/versions.md`.
|
|
115
115
|
- **Released v9/v10 and published v11:** public contracts and direction select v9;
|
|
@@ -119,6 +119,15 @@ changes with the root folder name.
|
|
|
119
119
|
`key` binds. Read `references/production-routes-and-filters.md` and read-surface
|
|
120
120
|
`references/named-keys.md`; version freeze and numeric boundaries: `references/versions.md`.
|
|
121
121
|
|
|
122
|
+
- **Published v12 (4.139.0):** non-positional enum numbers bind; canonical
|
|
123
|
+
`numbers` parallels `values`. Positional pins preserve earlier executable
|
|
124
|
+
bytes/version. Specifications still use names. The pinned CLI's compiler accepts source
|
|
125
|
+
authoring but refuses non-positional numbers at binding (PLAY0268), before
|
|
126
|
+
renderer admission. Neither its compiler nor Stage reads v12 ESM; upgrading
|
|
127
|
+
only the compiler would not lift their v10 admission ceiling (`references/versions.md`). Syntax:
|
|
128
|
+
command-surface `references/enum-numbers.md`; errors PLAY0667–0670 and opt-in
|
|
129
|
+
`enum-pinning` hint PLAY0671: `references/diagnostics.md`.
|
|
130
|
+
|
|
122
131
|
- **Caller/compliance metadata** at 4.127.0: `$identity` aliases caller built-ins;
|
|
123
132
|
additional identity details are metadata and executable reads still refuse.
|
|
124
133
|
Bare `pii`/`secret` replace legacy spellings; `pii personal` repeats one marker
|
|
@@ -21,10 +21,13 @@ PLAY0268 (#599), not v10. Read [named keys](../../cratis-screenplay-read-surface
|
|
|
21
21
|
Production `stream Source.Stream` overrides and reaction/reducer `from Source[.Stream]`
|
|
22
22
|
select released v10: [routes and filters](production-routes-and-filters.md).
|
|
23
23
|
Qualifying non-route Double literals select published v11 at 4.135.0;
|
|
24
|
-
`numbers exact` does not bind.
|
|
24
|
+
`numbers exact` does not bind. Non-positional enum member numbers (`draft = 1`)
|
|
25
|
+
select published v12 at 4.139.0; positional pins keep earlier bytes/version,
|
|
26
|
+
while specifications still use names. The pinned CLI/Stage pair (`versions.md`) does not admit v12.
|
|
27
|
+
Syntax/example: command-surface `references/enum-numbers.md`.
|
|
28
|
+
See `versions.md` for freeze and numeric boundaries.
|
|
25
29
|
|
|
26
|
-
Current pins:
|
|
27
|
-
single table. Compile evidence below keeps its historical tool labels.
|
|
30
|
+
Current pins: `versions.md` (the single table). Compile evidence below keeps its historical tool labels.
|
|
28
31
|
|
|
29
32
|
The syntax lives in compiled example files next to this one (each is a Markdown file holding
|
|
30
33
|
one complete `screenplay` fence). Copy shapes from them; do not write a form that none of
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
- Warnings that hide defects (always validate with `--warnings-as-errors`)
|
|
6
6
|
- Source reference and identifier checks
|
|
7
7
|
- Public events and translation direction
|
|
8
|
+
- Explicit enum member numbers
|
|
8
9
|
- Named keys, production routes and observer filters
|
|
9
10
|
- Caller identity, compliance and routes
|
|
10
11
|
- Specification metadata, callers, cases and locators
|
|
@@ -53,7 +54,7 @@ Legacy compliance spellings (`@pii`/`@sensitive`) do not evade PLAY0515.
|
|
|
53
54
|
|
|
54
55
|
## Public events and translation direction
|
|
55
56
|
|
|
56
|
-
|
|
57
|
+
Source checked at Screenplay 4.135.0; all are errors. These constructs bind as released
|
|
57
58
|
ESM v9, except public/foreign imports without local shapes (PLAY0268).
|
|
58
59
|
|
|
59
60
|
| Code | Meaning / fix |
|
|
@@ -79,6 +80,24 @@ or non-Translate direction. Repair discovery uses `repair-capabilities`, workspa
|
|
|
79
80
|
`repairs`, then revision-checked `propose-repair`; do not guess a direction.
|
|
80
81
|
See automations-and-translations `references/public-events-and-direction.md`.
|
|
81
82
|
|
|
83
|
+
## Explicit enum member numbers
|
|
84
|
+
|
|
85
|
+
Source errors from Screenplay 4.137.0; ESM v12 admission from 4.139.0:
|
|
86
|
+
|
|
87
|
+
| Code | Severity | Meaning / fix |
|
|
88
|
+
| --- | --- | --- |
|
|
89
|
+
| PLAY0667 | E | Mixed numbered/unnumbered members; number all or none |
|
|
90
|
+
| PLAY0668 | E | Duplicate enum number; aliases are not supported |
|
|
91
|
+
| PLAY0669 | E | Number outside int32 (-2147483648 through 2147483647) |
|
|
92
|
+
| PLAY0670 | E | Malformed number: decimal digits, optional minus, no leading zero, fraction, exponent or plus |
|
|
93
|
+
| PLAY0671 | I | Opt-in `enum-pinning` completeness hint for an unnumbered enum used by an event property; ordinary compilation does not report it |
|
|
94
|
+
|
|
95
|
+
Numbering errors have no automatic repair. PLAY0671 suggests the opt-in
|
|
96
|
+
`propose-number-enum-members` refactoring, not a correctness repair. Member names
|
|
97
|
+
remain specification values. Non-positional pins select v12; positional pins keep
|
|
98
|
+
older executable bytes/version. Consumer admission is separate (`versions.md`).
|
|
99
|
+
Source: `v4.139.0:Documentation/screenplay/diagnostics.md`, decision 0065.
|
|
100
|
+
|
|
82
101
|
## Named keys, production routes and observer filters
|
|
83
102
|
|
|
84
103
|
| Code | Severity | Meaning / fix |
|
|
@@ -312,7 +331,7 @@ Report each as `code file:line one-line meaning`; never paste more than about 30
|
|
|
312
331
|
|
|
313
332
|
## Render admission (V5): `STAGE-*`, `CLI-RENDER-*`, `STAGE-CRATIS-*`
|
|
314
333
|
Full table with causes: `renderable-subset.md`. The Stage 4.24.x rows below
|
|
315
|
-
retain historical source/probe evidence.
|
|
334
|
+
retain historical source/probe evidence. The pinned CLI/Stage pair (`versions.md`) admits
|
|
316
335
|
through v10 to construct checks; above it is CLI-RENDER-004 (direct Stage:
|
|
317
336
|
STAGE-ESM-016). Publication STAGE-ESM-032, foreign facts/event captures 033,
|
|
318
337
|
reaction identity 034, reaction filters 035 and production overrides 036 remain
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Documentation contradictions and which side to trust
|
|
2
2
|
|
|
3
|
-
Current pins
|
|
3
|
+
Current pins: `versions.md`. This is a
|
|
4
4
|
**historical** contradiction inventory, not a claim that all listed defects still
|
|
5
5
|
exist. Current grammar documents exact numbers and free description placement;
|
|
6
6
|
sources/routes bind as ESM v8; PLAY0515 is a source error; CLI admits through
|
|
@@ -42,7 +42,7 @@ read from source or documentation.
|
|
|
42
42
|
| 14 | `$causedBy` | not evaluable (#4119), not ESM | showcase only |
|
|
43
43
|
| 15 | literal keys | `key literal "global"` vs `key "global"` | both compile; prefer `literal` |
|
|
44
44
|
| 16 | query admission | `D/queries.md:74` now says live, filtered, scoped and performer queries are not admitted | the binder also rejects collection queries and a missing `by`, which stay undocumented [probed] |
|
|
45
|
-
| 17 | `@pii` | `D/concepts.md:3,33` "Chronicle applies `@pii` and `@sensitive` rules automatically" | the binder rejects any compliance attribute (PLAY0268); keep it, report V3 blocked. `@sensitive` means an operational secret (`[Encrypted]` + `[NotAudited]`; Screenplay decision 0034); the
|
|
45
|
+
| 17 | `@pii` | `D/concepts.md:3,33` "Chronicle applies `@pii` and `@sensitive` rules automatically" | the binder rejects any compliance attribute (PLAY0268); keep it, report V3 blocked. `@sensitive` means an operational secret (`[Encrypted]` + `[NotAudited]`; Screenplay decision 0034); the historically probed tools (standalone 4.68.0, bundle 4.66.0) do **not** report `PLAY0515` (`@pii` from 4.69.1, `@sensitive` from 4.84.1): there only Chronicle catches either attribute on an event-source identifier, at build time of the generated code (CHR0034 for `@pii`, CHR0052 for `@sensitive`) |
|
|
46
46
|
| 18 | read-model identity | `D/readmodels.md:32` "from the keyed query" | at 4.135.0 explicit `key` wins; else single-instance queries agree on one read-model `by` property; only with none and an admitted list query does conventional `*Id` inference run (collection-key exclusions: read-surface `references/named-keys.md`). Queryless views need explicit `key` |
|
|
47
47
|
| 19 | `$strings` constraint messages | `D/constraints.md:31` vs `D/internationalization.md:55` | the compiler keeps the key; realization localizes |
|
|
48
48
|
| 20 | composite key braces | optional in the EBNF; both forms in docs | both fine |
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
- Not refused, but do not rely on it
|
|
13
13
|
- Never do this to reach V3
|
|
14
14
|
|
|
15
|
-
Current pins
|
|
15
|
+
Current pins: `versions.md`. Detailed
|
|
16
16
|
4.66.0/4.68.0 binder probes below retain their historical labels. Current source
|
|
17
17
|
admits routes as ESM v8, public/direction constructs as v9, identity/overrides/filters
|
|
18
18
|
as v10 and qualifying non-route Double literals as v11. Operations,
|
|
@@ -94,7 +94,7 @@ Authority: v4.127.0 `context.md`, `identity.md`, `concepts.md`, `events.md`, `pu
|
|
|
94
94
|
...` with an explicit `for`. Without a declared actor, a gated invocation denies.
|
|
95
95
|
On 4.125.0 reaction `runs as system role "<Role>"` supplies the actor and
|
|
96
96
|
selects ESM v10; keep the gate. CLI 3.41.0's older compiler rejected this syntax;
|
|
97
|
-
CLI
|
|
97
|
+
The pinned CLI bundle (`versions.md`) supports it, but Stage refuses reaction identity with STAGE-ESM-034.
|
|
98
98
|
Standalone reference execution admits it.
|
|
99
99
|
- Application `trigger` declarations and `when trigger` specifications.
|
|
100
100
|
- `slice Translate` with `capture` (`key`, `map ... translate`, `append ... when x from "a"
|
|
@@ -153,6 +153,12 @@ filters match routed source/stream names only. Read
|
|
|
153
153
|
Qualifying retained non-route Double literals bind/reference-execute as v11 on
|
|
154
154
|
4.135.0, unlike `numbers exact`; see `versions.md`.
|
|
155
155
|
|
|
156
|
+
Non-positional enum member numbers bind as ESM v12 from 4.139.0; positional
|
|
157
|
+
pins preserve the earlier executable version/bytes. The optional canonical last
|
|
158
|
+
`numbers` array parallels `values`; specifications still use member names.
|
|
159
|
+
Consumers must admit v12 explicitly; CLI 3.53.1/Stage 4.73.1 do not. Syntax:
|
|
160
|
+
command-surface `references/enum-numbers.md`; version contract: `versions.md`.
|
|
161
|
+
|
|
156
162
|
## Code attachments (what binds, what never does)
|
|
157
163
|
|
|
158
164
|
Inline fences (`csharp`, `typescript`, `react`, `html`, `sql`) and `file <path>` attach
|
|
@@ -196,7 +202,7 @@ bodies still leave their owner non-executable.
|
|
|
196
202
|
| `Automation` or `Translate` slice, `reaction`, `capture`, `trigger`; `given clock`, `when clock`, `when trigger`, `when capture` | PLAY0268 | **cratis before 3.28.2 bundles only** (4.60.1); messages in `versions.md` |
|
|
197
203
|
| Unquoted `import Other.Contract` | PLAY0268 | external contract import is not bound |
|
|
198
204
|
| `pii` or `secret` on any concept (also alias/legacy markers) | PLAY0268 | Compliance requires portable data-subject semantics; scopes/qualifiers do not admit it. Secret provider mapping is `[Encrypted]` + `[NotAudited]`, not a bind/render claim |
|
|
199
|
-
| `query` returning a collection (`RM[]`), or without exactly one caller-supplied scalar `by` | PLAY0268 |
|
|
205
|
+
| `query` returning a collection (`RM[]`), or without exactly one caller-supplied scalar `by` | PLAY0268 | Historical 4.135.0 source check: composite `by` blocks remain unadmitted (#599); optional scalar snapshot lookup binds |
|
|
200
206
|
| `observable`, `filter`, `scoped to`, `performer` queries | PLAY0268 | "uses delivery, filtering, scope, or implementation behavior outside the first ESM v1 vertical." `observable` goes in the return position (`=> observable RM optional`); as a body line it is PLAY0048 |
|
|
201
207
|
| `contains` or `starts with` in conditions | PLAY0268 | equality and numeric ordering only |
|
|
202
208
|
| Date or DateTime comparison, `today` | PLAY0268 | no runtime date value |
|
|
@@ -108,7 +108,7 @@ contract. A consumer admitting v10 must include all three, not just identity.
|
|
|
108
108
|
Composite **read-model** keys are separate and remain unadmitted (PLAY0268, #599).
|
|
109
109
|
|
|
110
110
|
Previous CLI 3.46.1/Stage 4.52.0 refused versions above v7 before planning.
|
|
111
|
-
CLI
|
|
111
|
+
The pinned CLI/Stage pair (`versions.md`) admits through v10 to construct checks: production overrides
|
|
112
112
|
still refuse STAGE-ESM-036 and reaction filters STAGE-ESM-035; reducer filters render.
|
|
113
113
|
A supported version number alone never proves target support or a passing render.
|
|
114
114
|
|
|
@@ -28,7 +28,7 @@ is adapted with the agreement of Martin Dilger and Nebulit GmbH.
|
|
|
28
28
|
|
|
29
29
|
## Sources read for facts
|
|
30
30
|
|
|
31
|
-
-
|
|
31
|
+
- Historical public/keys/routes/version source check: Screenplay `v4.135.0` (`b4e46130`),
|
|
32
32
|
unchanged release contract, `Semantics/Versions.cs`, `Documentation/screenplay/{events,slices,captures,readmodels,queries,event-sources,diagnostics,interoperability}.md`,
|
|
33
33
|
decisions 0049–0051 and 0060–0066. Composite view keys remain PLAY0268 (#599);
|
|
34
34
|
v11 literal lowering is admitted despite interoperability's unreleased label.
|