@cratis/pi 7.21.0 → 7.22.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 +19 -12
- package/package/corpus/skills/cratis-screenplay-automations-and-translations/references/audit-format.md +4 -3
- package/package/corpus/skills/cratis-screenplay-automations-and-translations/references/automation-patterns.md +13 -15
- package/package/corpus/skills/cratis-screenplay-automations-and-translations/references/cases-to-specify.md +4 -4
- package/package/corpus/skills/cratis-screenplay-automations-and-translations/references/effects-and-idempotency.md +21 -0
- package/package/corpus/skills/cratis-screenplay-automations-and-translations/references/provenance.md +4 -2
- package/package/corpus/skills/cratis-screenplay-automations-and-translations/references/todo-list-example.md +7 -4
- package/package/corpus/skills/cratis-screenplay-automations-and-translations/verification.json +4 -4
- package/package/corpus/skills/cratis-screenplay-captures-and-reactions/SKILL.md +38 -36
- package/package/corpus/skills/cratis-screenplay-captures-and-reactions/references/complete-examples.md +1 -1
- package/package/corpus/skills/cratis-screenplay-captures-and-reactions/references/invocation-identity.md +84 -0
- package/package/corpus/skills/cratis-screenplay-captures-and-reactions/references/refusals-and-redelivery.md +102 -0
- package/package/corpus/skills/cratis-screenplay-captures-and-reactions/references/specifying-triggers-and-clock.md +4 -2
- package/package/corpus/skills/cratis-screenplay-captures-and-reactions/verification.json +1 -1
- package/package/corpus/skills/cratis-screenplay-command-surface/SKILL.md +28 -16
- package/package/corpus/skills/cratis-screenplay-command-surface/references/context.md +9 -0
- package/package/corpus/skills/cratis-screenplay-command-surface/references/generated-values-and-responses.md +15 -13
- package/package/corpus/skills/cratis-screenplay-command-surface/references/operations.md +80 -0
- package/package/corpus/skills/cratis-screenplay-command-surface/references/policy-persona-seed.md +23 -1
- package/package/corpus/skills/cratis-screenplay-command-surface/verification.json +2 -2
- package/package/corpus/skills/cratis-screenplay-discovery/SKILL.md +9 -6
- package/package/corpus/skills/cratis-screenplay-discovery/references/storming-loop.md +6 -5
- package/package/corpus/skills/cratis-screenplay-event-modeling/SKILL.md +7 -5
- package/package/corpus/skills/cratis-screenplay-event-modeling/references/nine-steps.md +6 -5
- package/package/corpus/skills/cratis-screenplay-event-modeling/references/parsed-not-runnable.md +39 -49
- package/package/corpus/skills/cratis-screenplay-legacy-extraction/SKILL.md +5 -3
- package/package/corpus/skills/cratis-screenplay-legacy-extraction/references/generate-notes.md +48 -8
- package/package/corpus/skills/cratis-screenplay-model-authoring/SKILL.md +44 -42
- package/package/corpus/skills/cratis-screenplay-model-authoring/references/language-reference.md +46 -9
- package/package/corpus/skills/cratis-screenplay-model-authoring/references/mcp-loop.md +35 -11
- package/package/corpus/skills/cratis-screenplay-model-authoring/references/mcp-tools.md +118 -13
- package/package/corpus/skills/cratis-screenplay-model-authoring/verification.json +3 -3
- package/package/corpus/skills/cratis-screenplay-model-review/SKILL.md +11 -6
- package/package/corpus/skills/cratis-screenplay-model-review/references/anti-patterns.md +1 -1
- package/package/corpus/skills/cratis-screenplay-model-review/references/checklist.md +11 -2
- package/package/corpus/skills/cratis-screenplay-read-surface/SKILL.md +10 -0
- package/package/corpus/skills/cratis-screenplay-read-surface/references/guarded-actions.md +79 -0
- package/package/corpus/skills/cratis-screenplay-render-and-gap-fill/SKILL.md +9 -7
- package/package/corpus/skills/cratis-screenplay-render-and-gap-fill/references/gap-fill-handoff.md +6 -3
- package/package/corpus/skills/cratis-screenplay-render-and-gap-fill/verification.json +2 -2
- package/package/corpus/skills/cratis-screenplay-scenario-coverage/SKILL.md +3 -2
- package/package/corpus/skills/cratis-screenplay-scenario-coverage/references/spec-forms-by-mode.md +13 -2
- package/package/corpus/skills/cratis-screenplay-slice-design/SKILL.md +3 -2
- package/package/corpus/skills/cratis-screenplay-slice-design/references/command-inventory.md +3 -2
- package/package/corpus/skills/cratis-screenplay-slice-design/references/slicing.md +40 -0
- package/package/corpus/skills/cratis-screenplay-specifications/SKILL.md +24 -16
- package/package/corpus/skills/cratis-screenplay-specifications/references/examples-and-routes.md +103 -0
- package/package/corpus/skills/cratis-screenplay-specifications/references/reactions-and-cascades.md +5 -6
- package/package/corpus/skills/cratis-screenplay-streams-and-consistency/SKILL.md +4 -4
- package/package/corpus/skills/cratis-screenplay-streams-and-consistency/references/stream-patterns.md +4 -2
- package/package/corpus/skills/cratis-screenplay-streams-and-consistency/verification.json +2 -2
- package/package/corpus/skills/cratis-screenplay-toolchain/SKILL.md +34 -32
- package/package/corpus/skills/cratis-screenplay-toolchain/references/cheat-sheet-example.md +1 -1
- package/package/corpus/skills/cratis-screenplay-toolchain/references/cheat-sheet.md +47 -2
- package/package/corpus/skills/cratis-screenplay-toolchain/references/diagnostics.md +57 -9
- package/package/corpus/skills/cratis-screenplay-toolchain/references/doc-contradictions.md +6 -1
- package/package/corpus/skills/cratis-screenplay-toolchain/references/executable-subset.md +19 -10
- package/package/corpus/skills/cratis-screenplay-toolchain/references/provenance.md +4 -2
- package/package/corpus/skills/cratis-screenplay-toolchain/references/renderable-subset.md +8 -1
- package/package/corpus/skills/cratis-screenplay-toolchain/references/sources-and-streams.md +90 -27
- package/package/corpus/skills/cratis-screenplay-toolchain/references/traps.md +10 -6
- package/package/corpus/skills/cratis-screenplay-toolchain/references/verdicts.md +29 -12
- package/package/corpus/skills/cratis-screenplay-toolchain/references/versions.md +91 -136
- package/package/corpus/skills/cratis-screenplay-toolchain/verification.json +7 -5
- package/package/corpus/skills/cratis-screenplay-ui-composition/references/screen-composition-contract.md +20 -0
- package/package/corpus/skills/cratis-stage-rendering-and-sandbox/SKILL.md +9 -5
- package/package/corpus/skills/cratis-stage-rendering-and-sandbox/references/admission.md +8 -1
- package/package/corpus/skills/cratis-stage-rendering-and-sandbox/verification.json +2 -2
- package/package.json +1 -1
|
@@ -28,12 +28,20 @@ V3 are read from the MCP server or from a render, V1 and V5 from the CLIs.
|
|
|
28
28
|
|
|
29
29
|
| Tool | Command | Pass | Fail |
|
|
30
30
|
| --- | --- | --- | --- |
|
|
31
|
-
| Standalone (preferred) | `screenplay <model-
|
|
31
|
+
| Standalone 4.125.0 (preferred) | `screenplay <model-root> --warnaserror --no-color` | exit 0 and a nonzero compiled file count | exit 1 defects; exit 2 could not run/invalid arguments or input |
|
|
32
32
|
| cratis (fallback) | `cratis screenplay validate <model-folder> --warnings-as-errors -o json-compact` | exit 0 | exit 5; exit 1 means missing path or no files |
|
|
33
33
|
|
|
34
|
-
-
|
|
35
|
-
|
|
36
|
-
-
|
|
34
|
+
- Validate the complete application root, not an independently selected fragment.
|
|
35
|
+
Standalone file mode follows imports; folder mode includes all files. The CLI
|
|
36
|
+
file-import limitation below was a 3.28.2 probe, not a current tool claim.
|
|
37
|
+
- Require a nonzero file count; empty input is not a model-validation pass.
|
|
38
|
+
- Optional `--scope <Module.Feature.Slice>` compiles the whole application but
|
|
39
|
+
reports descendants and direct dependent declarations, not transitive impact.
|
|
40
|
+
Exit/`--warnaserror` apply to that reported set; inspect the separate whole
|
|
41
|
+
application counts before a whole-model claim. Unknown/ambiguous scopes exit 2.
|
|
42
|
+
- `--check <names>` (repeatable) or `--check all` opts into completeness warnings
|
|
43
|
+
PLAY0530–PLAY0537. Whole-source errors skip them; a skipped check is not passed.
|
|
44
|
+
Names/codes, coverage limits and editor support: `diagnostics.md`.
|
|
37
45
|
- Warnings are failures here. PLAY0029 (a construct dropped silently) and the unresolved-name
|
|
38
46
|
warnings are the defects this verdict exists to catch.
|
|
39
47
|
- Syntax and consistency checks (PLAY0282 to PLAY0294) run; binding does not.
|
|
@@ -75,14 +83,21 @@ never "specifications pass".
|
|
|
75
83
|
- A blocked V3 is not repaired by deleting protection or domain rules. Never remove `@pii`,
|
|
76
84
|
`@sensitive`, authorization, list queries, automations or rules to reach V3; record the
|
|
77
85
|
slice and the code in the gap list.
|
|
78
|
-
- A model is
|
|
79
|
-
|
|
86
|
+
- A model is executable only on the compiler that bound it. V3 does not carry
|
|
87
|
+
to render admission: CLI 3.41.0 passes up to ESM v7 to Stage, refuses newer
|
|
88
|
+
models with CLI-RENDER-004, and its v7 corpus receives STAGE-ESM-028/029.
|
|
89
|
+
The old 3.28.x/Stage 4.24.x probes remain historical in the subset references.
|
|
80
90
|
|
|
81
91
|
## V4: reference specifications run
|
|
82
92
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
93
|
+
Run `screenplay test <root> [--filter <exact-address>] [--format text|json]` on
|
|
94
|
+
4.125.0, or MCP `run-specifications`. The compile command alone still does not
|
|
95
|
+
execute scenarios. Reference execution is in-memory: no external services or
|
|
96
|
+
opaque code run. Record route, expected versus discovered/selected counts,
|
|
97
|
+
passed, failed and unsupported outcomes. Exit 0 means all selected passed; 1
|
|
98
|
+
failed, 2 could not run/invalid input or selection, 3 unbound or unsupported.
|
|
99
|
+
Unknown filters refuse rather than select zero. No discovered specifications
|
|
100
|
+
is not proof of coverage.
|
|
86
101
|
The reference runner returns unsupported for a specification that reads a reducer-built read
|
|
87
102
|
model and for any construct whose evaluation needs an opaque body.
|
|
88
103
|
|
|
@@ -133,9 +148,11 @@ source change makes earlier verdicts stale.
|
|
|
133
148
|
|
|
134
149
|
## Example gate (for skill and documentation authors)
|
|
135
150
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
151
|
+
Historical corpus fences were checked with standalone 4.68.0 and CLI 3.28.2.
|
|
152
|
+
Do not promote those results to current pins without rerunning. Check each changed
|
|
153
|
+
complete fence with standalone 4.125.0 `--warnaserror`; run `screenplay test` for
|
|
154
|
+
specification examples, and verify expected-diagnostic examples against their
|
|
155
|
+
claimed codes. Where bundle compatibility matters, also check CLI 3.41.0.
|
|
139
156
|
The `// Needs the standalone screenplay compiler (ESM v6)` first-line marker belonged to cratis
|
|
140
157
|
before 3.28.2, which could not validate those fences; no fence carries it now, and a
|
|
141
158
|
checker that still skips marked fences under `cratis` skips nothing. Examples meant to execute are also opened through MCP and
|
|
@@ -4,159 +4,114 @@
|
|
|
4
4
|
|
|
5
5
|
- Pin set
|
|
6
6
|
- Two compilers, one rule
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
- MCP roots bug (4.63.1 and earlier; fixed in 4.63.2; not present in cratis 3.28.2)
|
|
7
|
+
- Commands and exit codes
|
|
8
|
+
- Admission boundaries
|
|
9
|
+
- Historical probes
|
|
11
10
|
- Revisions and descriptions
|
|
12
|
-
- Roadmap items that would change a verdict (all open at the pin; the `@sensitive` meaning, Screenplay#384, and the identifier refusal and C# mapping, Stage#197, are settled in decision 0034; the pinned tools predate `PLAY0515`)
|
|
13
11
|
- Upgrade checklist
|
|
14
12
|
|
|
15
|
-
Every other Screenplay skill and reference points here instead of repeating a version
|
|
16
|
-
or a tool capability. When a tool changes, update this file first, then re-run the
|
|
17
|
-
example compile gate with both tools (see `verdicts.md`, "Example gate").
|
|
18
|
-
|
|
19
|
-
Pinned and re-verified against product source on 2026-10-07 (standalone Screenplay 4.68.0); the cratis CLI rows were
|
|
20
|
-
re-probed on cratis 3.28.2 and 3.28.3 (Screenplay 4.66.0 bundled in both). Facts marked
|
|
21
|
-
*source* were read with `git show <tag>:<path>`; facts marked *probed* were run against the
|
|
22
|
-
installed tool.
|
|
23
|
-
|
|
24
13
|
## Pin set
|
|
25
14
|
|
|
26
|
-
|
|
15
|
+
Use the released versions below. A source-checked capability is not a runtime
|
|
16
|
+
probe; older probes retain their original labels in the other references.
|
|
17
|
+
|
|
18
|
+
| Source | Pin | Evidence |
|
|
27
19
|
| --- | --- | --- |
|
|
28
|
-
| Screenplay
|
|
29
|
-
| cratis CLI | **
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
|
|
|
33
|
-
|
|
34
|
-
Install or update the standalone tool: `dotnet tool update -g Cratis.Screenplay.Tool`
|
|
35
|
-
(first install: `dotnet tool install -g Cratis.Screenplay.Tool`). Check what is on the
|
|
36
|
-
machine before relying on any row: `screenplay --version`, `cratis --version`, and MCP
|
|
37
|
-
`initialize` -> `serverInfo.version`. A stale `cratis` earlier on `PATH` (for example a
|
|
38
|
-
global `dotnet` tool) shadows a newer one; confirm with `which -a cratis`.
|
|
20
|
+
| Screenplay language, standalone tool and MCP | **4.125.0** (`4d818eb`) | Released tag `v4.125.0`; installed `screenplay --version` and `--help` |
|
|
21
|
+
| cratis CLI | **3.41.0** | Released tag `v3.41.0`; installed `cratis --version` |
|
|
22
|
+
| Screenplay bundled by CLI | **4.114.0** | CLI `v3.41.0:Directory.Packages.props` |
|
|
23
|
+
| Stage bundled by CLI | **4.51.3** | Same file; the CLI's runtime image follows its Stage package version |
|
|
24
|
+
| Cratis.Arc.Screenplay bundled by CLI | **22.54.0** | Same file; this is the generator package, not a blanket rendered-app dependency pin |
|
|
25
|
+
| Chronicle / Fundamentals bundled by CLI | **19.32.0 / 7.22.8** | Same file |
|
|
39
26
|
|
|
40
|
-
|
|
27
|
+
Check the actual executable before relying on this table: `screenplay --version`,
|
|
28
|
+
`cratis --version`, MCP `initialize` → `serverInfo.version`. An older executable
|
|
29
|
+
on PATH can shadow a newer install; inspect `which -a cratis`.
|
|
41
30
|
|
|
42
|
-
|
|
43
|
-
| --- | --- | --- |
|
|
44
|
-
| Version | 4.68.0 (this pin) | 3.28.3 or 3.28.2, bundling Screenplay 4.66.0 (3.28.1 and earlier bundled 4.60.1) |
|
|
45
|
-
| ESM admitted by the binder | v1 to v7 (v6: clocks, application triggers, captures, reactions, Automation and Translate slices; v7: generated command values and responses) | v1 to v6 (3.28.3 bundles 4.66.0, so `generated` and `returns` fail binding with `PLAY0268`), the binder of 4.66.0 (probed on 3.28.2: the Automation, Translate and capture examples of this corpus are `executableReady` over `cratis screenplay mcp`) |
|
|
46
|
-
| `numbers exact` | syntax parses; binding refuses (PLAY0268, `executableReady: false`). Absent from the grammar page; documented only in `diagnostics.md` (PLAY0508 to PLAY0513) | same (probed on 3.28.2; 3.27.1 reported PLAY0001 "Unexpected 'numbers'") |
|
|
47
|
-
| Cascade specs (a command spec listing events a reaction appends) | compiles | compiles on 3.28.2 (probed); before 3.28.2 reported a **false PLAY0285** (cli#242, still open on GitHub at the time of writing) |
|
|
48
|
-
| Imports in file mode | follows imports | still ignores imports, reports false unknown-name warnings (PLAY0165, cli#244, open; probed on 3.28.2): validate the folder |
|
|
49
|
-
| Used for | V1, V2, V3; MCP | `render`, `screenplay generate`, `prologue`, `run`; V1, V2 and V3 as well, with its bundled 4.66.0 compiler (cratis 3.28.3), which lacks ESM v7 that standalone 4.68.0 admits |
|
|
50
|
-
|
|
51
|
-
**Routing rule.** With cratis 3.28.2 or later both tools compile and bind the same
|
|
52
|
-
models up to ESM v6 (the cratis bundle is Screenplay 4.66.0, the standalone pin 4.68.0), so either gives V1 to V3 for models up to v6; a model with generated values or responses (ESM v7) binds only with the standalone tool. Prefer the standalone tool when it is installed (file mode
|
|
53
|
-
follows imports); `cratis` is the route for rendering (V5), generation and Prologue. Projects
|
|
54
|
-
set up by `cratis ai install` register `cratis screenplay mcp`, which runs the bundled
|
|
55
|
-
compiler: on cratis 3.28.1 or earlier (all releases before 3.28.2) that is 4.60.1 and lags (ESM v5, false PLAY0285,
|
|
56
|
-
roots bug), so read `cratis --version` first. **Name the tool and its version with every
|
|
57
|
-
verdict**; a verdict from one tool does not carry to the other when their versions differ.
|
|
58
|
-
|
|
59
|
-
### Exact messages that tell the tools apart
|
|
60
|
-
|
|
61
|
-
Only binding (MCP or `render`) prints these; neither `screenplay <folder>` nor
|
|
62
|
-
`cratis screenplay validate` binds. *source*: `Semantics/Versions.cs`,
|
|
63
|
-
`SemanticModelBinder.Structure.cs`, `SemanticModelBinder.SliceMembers.cs`,
|
|
64
|
-
`SemanticModelBinder.Specifications.cs`.
|
|
65
|
-
|
|
66
|
-
| Construct | cratis before 3.28.2 (Screenplay 4.60.1) reported (PLAY0268) | 4.66.0 to 4.68.0, standalone and cratis 3.28.2 |
|
|
67
|
-
| --- | --- | --- |
|
|
68
|
-
| Automation or Translate slice | `Slice '<name>' of type '<type>' is not admitted by ESM v1.` | binds as ESM v6 |
|
|
69
|
-
| Reaction | `Reaction '<n>' requires portable occurrence and effect semantics.` | binds |
|
|
70
|
-
| Capture | `Capture '<n>' requires a portable compiled CDL plan.` | binds |
|
|
71
|
-
| Generated property, `returns` response, generated fixture or `then returns` | `PLAY0268` | `PLAY0268` on 4.66.0 and 4.67.0 (so on every cratis 3.28.x bundle); binds as ESM v7 from 4.68.0 (standalone only) |
|
|
72
|
-
| Clock, trigger or capture specification | `... which the executable model does not admit yet - clocks, application triggers and capture records are proposed for ESM v6 in decision 0022.` | binds |
|
|
31
|
+
## Two compilers, one rule
|
|
73
32
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
producing directly (decision 0006).
|
|
33
|
+
Standalone Screenplay 4.125.0 and the CLI's 4.114.0 bundle are different releases.
|
|
34
|
+
Prefer standalone for the current language checks; CLI owns generation, Prologue
|
|
35
|
+
and rendering. Name the tool/version with every verdict. No verdict transfers
|
|
36
|
+
between differing compilers without checking the same inputs there.
|
|
79
37
|
|
|
80
|
-
|
|
38
|
+
A folder compiles as one application. A standalone file includes its imports,
|
|
39
|
+
not unimported siblings. Keep the application root as input for scoped checks.
|
|
40
|
+
Do not treat a clean fragment or scoped result as whole-application success.
|
|
81
41
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
| File versus folder | file mode follows imports (`app.play` importing `Shared/*.play` compiled 2 files). A folder is one application | probed |
|
|
87
|
-
| MCP | `screenplay mcp <model-folder>` (fixed root) or `screenplay mcp` (dynamic root). Protocol `2025-06-18`; 29 tools (30 on hosts that advertise the MCP-Apps UI extension: adds `visualize-model`). Needs `notifications/initialized` before tool calls (otherwise -32600 "Initialize and send notifications/initialized before using tools."). Refuses symlinked paths ("Symbolic links and reparse points are not admitted"): pass a physical path (on macOS `/tmp` is a symlink) | source `McpToolCatalog.cs`, `McpConnection.cs`; probed on 4.63.1 |
|
|
88
|
-
| `read-workspace` views | `documents`, `semantics`, `eventContracts`, `diagnostics`, `executable-diagnostics`, `implementation-requirements`, `handler-intents`, `source-map`, `typed-contexts`, `executable-model`, `repairs`, and the event-source, event-stream and command-route views. `executable-model` returns `available:false` unless the model binds; when it binds it carries `modelRevision` (`rev1:<sha256>`), `languageVersion`, `semanticVersion` and `attachmentManifestRevision` | source `McpToolSchemas.cs`, `McpWorkspaces.Reading.cs` |
|
|
89
|
-
| Empty root | `state: "empty"`, `authoringAccepted: true`, PLAY0289 | probed |
|
|
90
|
-
| Pin of the roots bug | fixed (from 4.63.2); see "MCP roots bug" below | source `McpConnection.cs` |
|
|
42
|
+
MCP server launch: `screenplay mcp <model-root>` or
|
|
43
|
+
`cratis screenplay mcp <model-root>`. Discover `tools/list`, views and schemas
|
|
44
|
+
rather than counting tools. Connection, worktree switching and root-state
|
|
45
|
+
conflicts: `cratis-screenplay-model-authoring`.
|
|
91
46
|
|
|
92
|
-
##
|
|
47
|
+
## Commands and exit codes
|
|
93
48
|
|
|
94
|
-
|
|
|
49
|
+
| Layer | Route | Verdict |
|
|
95
50
|
| --- | --- | --- |
|
|
96
|
-
|
|
|
97
|
-
|
|
|
98
|
-
|
|
|
99
|
-
|
|
|
100
|
-
|
|
|
101
|
-
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
51
|
+
| Source validation | `screenplay <root> --warnaserror --no-color` | 0 clean; 1 reported defects; 2 could not run/invalid arguments or input. `--scope` limits the reported set, not compilation |
|
|
52
|
+
| Completeness | Add `--check <name>[,<name>]` (repeatable) or `--check all` | Opt-in warnings; whole-source errors skip checks, not pass them |
|
|
53
|
+
| CLI source validation | `cratis screenplay validate <root> --warnings-as-errors -o json-compact` | Read producer exit and JSON errors/warnings/file count. Passing source-only probe on CLI 3.41.0: dependencies example, exit 0 |
|
|
54
|
+
| Binding | MCP workspace readiness and `executable-diagnostics` | V2 reads diagnostics; V3 requires binding with no blocking diagnostics |
|
|
55
|
+
| Reference specifications | `screenplay test <root> [--filter <address>] [--format text|json]`, or MCP `run-specifications` | 0 all selected passed; 1 failed; 2 could not run/invalid selection; 3 unsupported or unbound. Counts of zero do not prove coverage |
|
|
56
|
+
| Rendering | `cratis render` | Separate admission, publication, target build and target tests (V5) |
|
|
57
|
+
|
|
58
|
+
Source validation does not bind or run attached code. Reference execution is
|
|
59
|
+
in-memory and does not run opaque attachments or external services. CLI-derived
|
|
60
|
+
specification IDs need not match persisted MCP identities after renames; use MCP
|
|
61
|
+
for identity-stable selection.
|
|
62
|
+
|
|
63
|
+
## Admission boundaries
|
|
64
|
+
|
|
65
|
+
Screenplay `v4.125.0:Source/DotNET/Screenplay/Semantics/Versions.cs` supports schema
|
|
66
|
+
pairs through v10. Generated values/responses and policy negation select v7;
|
|
67
|
+
sources/streams and command/specification routes select v8; reaction
|
|
68
|
+
`runs as system [role "<Role>"]` selects v10 and reference-executes on 4.125.0.
|
|
69
|
+
The checked trusted-actor scenario is in captures-and-reactions
|
|
70
|
+
`references/invocation-identity.md`. CLI 3.41.0's 4.114.0 compiler rejects its
|
|
71
|
+
source with PLAY0137 (validation probe, exit 5). Stage 4.51.3's direct planner
|
|
72
|
+
uses EsmSchemaV7Support and refuses v10 with STAGE-ESM-016; CLI's version gate
|
|
73
|
+
separately refuses above v7 with CLI-RENDER-004. A source construct
|
|
74
|
+
still requires explicit binder/runner/provider admission: operations, exact
|
|
75
|
+
numeric mode and reaction refusals/redelivery remain authorable but unadmitted
|
|
76
|
+
(`PLAY0268`). Never delete those contracts to obtain a green bind.
|
|
77
|
+
|
|
78
|
+
CLI 3.41.0 `RenderedSemanticVersions.Newest` is **v7**:
|
|
79
|
+
`Source/Cli/Commands/Render/RenderedSemanticVersions.cs`. Models above it get
|
|
80
|
+
`CLI-RENDER-004` before planning/publication. v7 generated values/responses reach
|
|
81
|
+
Stage admission; they are not universally refused until CLI#261. That issue is
|
|
82
|
+
closed. Each unsupported construct still needs a Stage diagnostic, not a silent
|
|
83
|
+
omission or inferred support from package versions.
|
|
84
|
+
|
|
85
|
+
The renderable-subset and Stage references retain older probes explicitly;
|
|
86
|
+
read them as tested snapshots, not as a claim that Stage 4.51.3 shares every
|
|
87
|
+
4.24.2 limitation. Query the actual bundled renderer before a V5 claim.
|
|
88
|
+
|
|
89
|
+
## Historical probes
|
|
90
|
+
|
|
91
|
+
- Screenplay 4.68.0 admitted v7; CLI 3.28.2/3.28.3 bundled 4.66.0 (v6 at most),
|
|
92
|
+
Stage 4.24.1/4.24.2. Those old negative v7 probes do not describe CLI 3.41.0.
|
|
93
|
+
- CLI before 3.28.2 bundled Screenplay 4.60.1: false cascade PLAY0285, v6 refusal
|
|
94
|
+
and dynamic-root initialization bug. The roots bug was fixed in 4.63.2.
|
|
95
|
+
- CLI 3.28.2 file validation ignored imports; this is an old probe, not a current
|
|
96
|
+
reason to invent missing declarations. Validate the complete root.
|
|
97
|
+
- Older standalone empty-folder probes exited 0. Current validation still needs
|
|
98
|
+
a nonzero file count, and specification execution needs an expected selection.
|
|
125
99
|
|
|
126
100
|
## Revisions and descriptions
|
|
127
101
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
the `--name` identity and the bundled compiler. **Never compare the MCP `modelRevision`
|
|
137
|
-
with a render manifest.** Drift is detected by comparing successive `semanticRevision`
|
|
138
|
-
values from renders made with the same name and inputs (probed on 3.28.2: the same model
|
|
139
|
-
rendered as `Marina` and as `Harbour` gives different values). Unverified: whether 4.60.1
|
|
140
|
-
and 4.66.0 produce byte-identical `rev1` values for the same v1 to v3 model.
|
|
141
|
-
- Source identity for a verdict is the commit plus the digest from
|
|
142
|
-
the source-identity helper (`cratis-screenplay-modeling-lifecycle` `references/verdicts-and-modes.md` "Source identity"). Keep it apart from the MCP `modelRevision`.
|
|
143
|
-
- `description` and `documentation` never reach rendered code (Stage#178, open).
|
|
144
|
-
|
|
145
|
-
## Roadmap items that would change a verdict (all open at the pin; the `@sensitive` meaning, Screenplay#384, and the identifier refusal and C# mapping, Stage#197, are settled in decision 0034; the pinned tools predate `PLAY0515`)
|
|
146
|
-
|
|
147
|
-
Screenplay#377 (run specifications from MCP or the tool), #388 (completeness and lineage
|
|
148
|
-
report), #383 (identity for an `invokes` caller), #379 (`visualize-model` counts reactions); Stage#79 (render Automation and
|
|
149
|
-
Translate slices), Stage#165 (admit ESM v4); cli#242 (false PLAY0285 on the 4.60.1 bundle; fixed in effect by the 4.66.0 bundle but still open on GitHub), cli#243 (`validate --executable`),
|
|
150
|
-
cli#244 (file mode ignores imports), cli#245 (`render --check`). The standalone tool at
|
|
151
|
-
4.68.0 has only the compile command and `mcp` (no `test`; `screenplay --help` checked); the reference runner is library
|
|
152
|
-
only. Until these land, "specifications written" or "bound" is never "specifications
|
|
153
|
-
pass".
|
|
102
|
+
`modelRevision` exists only when binding succeeds; it is canonical semantic
|
|
103
|
+
identity, not source identity. Source positions and report-only metadata can
|
|
104
|
+
change source/workspace revisions without changing it. Persisted catalogs
|
|
105
|
+
preserve assigned identities; do not reconstruct them from names.
|
|
106
|
+
|
|
107
|
+
A render manifest's `semanticRevision` is a different provenance value, made
|
|
108
|
+
with the render name and bundled compiler. Do not compare it directly to MCP
|
|
109
|
+
`modelRevision`. Compare successive renders with the same identity and inputs.
|
|
154
110
|
|
|
155
111
|
## Upgrade checklist
|
|
156
112
|
|
|
157
|
-
1.
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
4. Check whether a `screenplay test` or `cratis screenplay test` exists (a V4 route).
|
|
113
|
+
1. Read installed versions and released dependency pins.
|
|
114
|
+
2. Check source, binder, reference runner and renderer admission separately.
|
|
115
|
+
3. Compile each changed example; execute specification examples with the
|
|
116
|
+
reference route. Preserve explicit expected-diagnostic checks.
|
|
117
|
+
4. Re-probe affected capabilities before replacing a historical version label.
|
|
@@ -9,15 +9,17 @@
|
|
|
9
9
|
{ "kind": "skill-contains", "value": "4.68.0" },
|
|
10
10
|
{ "kind": "skill-contains", "value": "4.66.0" },
|
|
11
11
|
{ "kind": "skill-contains", "value": "references/generated-responses-example.md" },
|
|
12
|
-
{ "kind": "skill-contains", "value": "
|
|
13
|
-
{ "kind": "skill-contains", "value": "
|
|
12
|
+
{ "kind": "skill-contains", "value": "Operations and exact numeric" },
|
|
13
|
+
{ "kind": "skill-contains", "value": "Stage generated-value/response refusals `STAGE-ESM-028`/`029`" },
|
|
14
14
|
{ "kind": "skill-contains", "value": "cratis screenplay validate" },
|
|
15
15
|
{ "kind": "skill-contains", "value": "cli#244" },
|
|
16
16
|
{ "kind": "skill-contains", "value": "`notifications/initialized`" },
|
|
17
17
|
{ "kind": "skill-contains", "value": "A handler never binds" },
|
|
18
18
|
{ "kind": "skill-contains", "value": "references/sources-and-streams.md" },
|
|
19
|
-
{ "kind": "skill-contains", "value": "
|
|
20
|
-
{ "kind": "skill-contains", "value": "
|
|
21
|
-
{ "kind": "skill-contains", "value": "
|
|
19
|
+
{ "kind": "skill-contains", "value": "CLI-RENDER-004" },
|
|
20
|
+
{ "kind": "skill-contains", "value": "PLAY0514" },
|
|
21
|
+
{ "kind": "skill-contains", "value": "bind as ESM v8" },
|
|
22
|
+
{ "kind": "skill-contains", "value": "PLAY0530/0531", "file": "references/diagnostics.md" },
|
|
23
|
+
{ "kind": "skill-contains", "value": "Editor versus C# verdicts", "file": "references/diagnostics.md" }
|
|
22
24
|
]
|
|
23
25
|
}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
- Support levels
|
|
9
9
|
- Data context and component bindings
|
|
10
|
+
- Guarded actions
|
|
10
11
|
- Exposed template configuration
|
|
11
12
|
- Forms and columns
|
|
12
13
|
- Packages, icons and template catalogs
|
|
@@ -91,6 +92,25 @@ Rules for agents:
|
|
|
91
92
|
can be targeted by navigation or a dialog route when the runtime contract
|
|
92
93
|
supports it.
|
|
93
94
|
|
|
95
|
+
## Guarded actions
|
|
96
|
+
|
|
97
|
+
A label-headed screen action can select one command through authored-order
|
|
98
|
+
`when item.<path> ... execute ...` alternatives. First match wins; last
|
|
99
|
+
`otherwise execute` supplies a fallback, while `otherwise hidden` or omission
|
|
100
|
+
hides an unmatched action. With no item (loading/no selection), always hide it.
|
|
101
|
+
Explicit with-bindings, matching subject fields, form inputs and renderer input
|
|
102
|
+
fill the chosen command in that order. Authorization denial is not another
|
|
103
|
+
selector and never falls through. Refresh if a click-time check changes the
|
|
104
|
+
choice the user saw.
|
|
105
|
+
|
|
106
|
+
Missing fields are not null; == null matches explicit null only. Guards are
|
|
107
|
+
presentation offers, never access control. Downstream runtime support is separate
|
|
108
|
+
from parsing; do not publish an empty plain action as equivalent behavior.
|
|
109
|
+
The complete checked model and conditions are in
|
|
110
|
+
`cratis-screenplay-read-surface` `references/guarded-actions.md`, grounded in
|
|
111
|
+
Screenplay v4.125.0 `screens.md`. CLI 3.41.0/Stage 4.51.3 reports unsupported
|
|
112
|
+
screen actions with STAGE-SCENE-ACTION-001, not proof of runtime selection.
|
|
113
|
+
|
|
94
114
|
## Exposed template configuration
|
|
95
115
|
|
|
96
116
|
Reusable templates can expose configuration and typed outlets:
|
|
@@ -133,12 +133,16 @@ Facts that surprise:
|
|
|
133
133
|
- `cratis render` and `cratis screenplay validate` are different gates: a model can
|
|
134
134
|
validate and still refuse here.
|
|
135
135
|
|
|
136
|
-
##
|
|
136
|
+
## Historical Stage 4.24 admission
|
|
137
137
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
138
|
+
Current pins are standalone Screenplay 4.125.0 / CLI 3.41.0 / Stage 4.51.3.
|
|
139
|
+
Routes bind/reference-execute as v8; reaction `runs as` identity as v10.
|
|
140
|
+
CLI renders through v7 only (CLI-RENDER-004 for newer model versions) and its
|
|
141
|
+
older 4.114.0 parser rejects `runs as` (PLAY0137). Stage 4.51.3's direct planner
|
|
142
|
+
also audits only through v7 (STAGE-ESM-016 otherwise). Source/identity contracts
|
|
143
|
+
stay intact for gap-fill; source acceptance is not target admission.
|
|
144
|
+
|
|
145
|
+
The following detailed 4.24.x probes are historical, not current pin claims.
|
|
142
146
|
|
|
143
147
|
Whole-model admission needs ESM schema v1 to v4; v5 and v6 are `STAGE-ESM-016`. Stage 4.24.2 admits ESM v4 (Screenplay compiles a model with evolved events to v4): an event at its initial revision renders exactly as before, but any selected event above the initial revision, and every scope depending on it (a command producing it, a projection or reducer observing it, a specification using it), is refused with `STAGE-ESM-026` and nothing is emitted. A typed-context reference to a historical revision or property identity is refused with `STAGE-ESM-025`. Stage cannot render Chronicle event-type migrations yet (Cratis/Stage#204, which depends on Cratis/Screenplay#71), and Stage's runtime (`cratis run`, the Host) still refuses evolved events, so deliver evolved events as gap-fill. Stage 4.24.1 also lists the ESM v6 members (reactions, captures, application triggers, clock and capture specifications) as rejected `STAGE-ESM-024` in its surface ledger, but the version gate refuses the model first, so a v6 model reports `STAGE-ESM-016` only. The bundled Stage 4.24.2 (cratis 3.28.3) reports an evolved event with `STAGE-ESM-026` only (probed); cratis 3.28.2 bundled Stage 4.24.1 (3.28.1 and earlier: 4.24.0), refused a v4 model with `STAGE-ESM-016` and also reported `CLI-RENDER-003`. The admitted vertical:
|
|
144
148
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Stage 4.24 admission: codes, specification rules and observed refusals
|
|
1
|
+
# Historical Stage 4.24 admission: codes, specification rules and observed refusals
|
|
2
2
|
|
|
3
3
|
## Contents
|
|
4
4
|
|
|
@@ -9,6 +9,13 @@
|
|
|
9
9
|
- Observed refusals
|
|
10
10
|
- Source disagreements (trust the code)
|
|
11
11
|
|
|
12
|
+
Current pins are in `cratis-screenplay-toolchain` `references/versions.md`:
|
|
13
|
+
CLI 3.41.0 bundles Stage 4.51.3 / Screenplay 4.114.0. It admits through ESM v7
|
|
14
|
+
to Stage planning; above v7 is CLI-RENDER-004. The CLI's v7 canonical-corpus
|
|
15
|
+
planning spec receives STAGE-ESM-028/029 for generated values/responses.
|
|
16
|
+
The detailed 4.24.x source/probe rows below have not been relabeled as current
|
|
17
|
+
runtime verification; run admission on the actual bundled renderer.
|
|
18
|
+
|
|
12
19
|
Read at Stage `v4.24.0`, re-read at `v4.24.1` and `v4.24.2` (`SemanticCratisAdmission.EventRevisions.cs`, `SemanticEventLineageAdmission.cs`, ESM v4 section of `Documentation/guides/build-renderer-target.md`) (`Source/Rendering.Cratis/Semantics/SemanticSurfaceLedger.cs`, `Documentation/guides/build-renderer-target.md`; 4.24.1 changed only the ledger, dependency pins and the Dockerfile) (`Source/Rendering.Cratis/CratisArtifactRenderPlanner.cs`,
|
|
13
20
|
`Semantics/SemanticCratisAdmission*.cs`, `SemanticSpecificationAdmission*.cs`,
|
|
14
21
|
`PureTransitionAdmission.cs`, `SemanticImplementationAdmission.cs`) and cli `v3.28.2`
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
{ "kind": "skill-contains", "value": "`Customizations/`" },
|
|
16
16
|
{ "kind": "skill-contains", "value": "`Stage__Runtime__Engine=semantic`" },
|
|
17
17
|
{ "kind": "skill-contains", "value": "`--engine semantic`" },
|
|
18
|
-
{ "kind": "skill-contains", "value": "
|
|
19
|
-
{ "kind": "skill-contains", "value": "
|
|
18
|
+
{ "kind": "skill-contains", "value": "Routes bind/reference-execute as v8" },
|
|
19
|
+
{ "kind": "skill-contains", "value": "CLI-RENDER-004" },
|
|
20
20
|
{ "kind": "skill-contains", "value": "STAGE-ESM-024" },
|
|
21
21
|
{ "kind": "skill-contains", "value": "`v4.24.2`" },
|
|
22
22
|
{ "kind": "skill-contains", "value": "STAGE-ESM-026" },
|