@cratis/pi 7.32.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/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-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
|
@@ -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.
|
|
@@ -7,8 +7,7 @@
|
|
|
7
7
|
- Ownership, publication and recovery
|
|
8
8
|
- Reading V5
|
|
9
9
|
|
|
10
|
-
Current pins:
|
|
11
|
-
4.131.0 and Stage 4.67.0 (`versions.md`). CLI/Stage admit through v10 to construct
|
|
10
|
+
Current compiler/CLI/Stage pins: `versions.md`. CLI/Stage admit through v10 to construct
|
|
12
11
|
checks, not blanket rendering; above v10 is CLI-RENDER-004 (direct Stage:
|
|
13
12
|
STAGE-ESM-016). v9 publication/foreign facts and v10 reaction identity,
|
|
14
13
|
reaction filters and production overrides still refuse STAGE-ESM-032–036;
|
|
@@ -19,7 +18,9 @@ admitted only through v7 and applied neither newer rule. The historical v7 canon
|
|
|
19
18
|
STAGE-ESM-028/029 for generated values/responses
|
|
20
19
|
(`v3.41.0:Source/Cli.Specs/for_ScreenplayPlanning/when_planning_an_esm_v7_model.cs`).
|
|
21
20
|
The following detailed Stage 4.24.x results are **historical**, not reverified
|
|
22
|
-
4.
|
|
21
|
+
4.73.1 claims. Non-positional enum numbers select v12 on standalone 4.139.0,
|
|
22
|
+
but the CLI's 4.137.0 compiler does not bind them and Stage does not admit v12.
|
|
23
|
+
Keep the pins and report the consumer gap. Run the bundled renderer before asserting current renderability.
|
|
23
24
|
|
|
24
25
|
Historical sources, all read at tags: Stage v4.24.1 `Source/Rendering.Cratis/Semantics/SemanticSurfaceLedger.cs`
|
|
25
26
|
(an exhaustive map of every ESM member to Rendered, Rejected(code) or Ignored),
|
|
@@ -67,7 +68,7 @@ accepted with PLAY0565 information); either still refuses binding. Identity bloc
|
|
|
67
68
|
purposes and event `subject` are authoring metadata, not provider realization;
|
|
68
69
|
executing identity detail reads still refuses PLAY0268. Current source/stream
|
|
69
70
|
routes are admitted as v8, including composite ids, not the historical binding
|
|
70
|
-
refusal above;
|
|
71
|
+
refusal above; the pinned CLI (`versions.md`) reaches Stage's v8 route checks. Never split hand-joined
|
|
71
72
|
legacy ids or drop protected ids into routing to fit a renderer (PLAY0515).
|
|
72
73
|
|
|
73
74
|
## Authoring consequences in renderable mode
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"text": " remains on disk. On CLI 3.43.0: 9 requests and 9 responses, 37 tools,",
|
|
26
26
|
"kind": "toolCount",
|
|
27
27
|
"value": "37",
|
|
28
|
-
"reason": "Measured CLI 3.43.0 transcript, whose bundled Screenplay 4.127.0 exposes 37 tools
|
|
28
|
+
"reason": "Measured historical CLI 3.43.0 transcript, whose bundled Screenplay 4.127.0 exposes 37 tools. Current compiler and bundle pins are in references/versions.md; this count describes only that transcript. Remove when the transcript is removed or replaced."
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
31
|
"file": ".cratis/ai/skills/cratis-screenplay-model-review/SKILL.md",
|