@cratis/pi 7.21.0 → 7.23.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 +31 -15
- 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 +41 -38
- 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 +57 -44
- package/package/corpus/skills/cratis-screenplay-command-surface/references/compliance.md +154 -0
- package/package/corpus/skills/cratis-screenplay-command-surface/references/context.md +57 -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 +8 -2
- package/package/corpus/skills/cratis-screenplay-discovery/SKILL.md +19 -9
- package/package/corpus/skills/cratis-screenplay-discovery/references/interview-questions.md +1 -1
- package/package/corpus/skills/cratis-screenplay-discovery/references/storming-loop.md +6 -5
- package/package/corpus/skills/cratis-screenplay-event-modeling/SKILL.md +10 -8
- package/package/corpus/skills/cratis-screenplay-event-modeling/references/naming-primitives.md +5 -3
- 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 +41 -49
- package/package/corpus/skills/cratis-screenplay-legacy-extraction/SKILL.md +15 -5
- package/package/corpus/skills/cratis-screenplay-legacy-extraction/references/generate-notes.md +48 -8
- package/package/corpus/skills/cratis-screenplay-model-authoring/SKILL.md +47 -42
- package/package/corpus/skills/cratis-screenplay-model-authoring/references/language-reference.md +79 -15
- package/package/corpus/skills/cratis-screenplay-model-authoring/references/mcp-loop.md +49 -11
- package/package/corpus/skills/cratis-screenplay-model-authoring/references/mcp-tools.md +155 -14
- package/package/corpus/skills/cratis-screenplay-model-authoring/verification.json +3 -3
- package/package/corpus/skills/cratis-screenplay-model-review/SKILL.md +19 -7
- 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-modeling-lifecycle/SKILL.md +3 -3
- package/package/corpus/skills/cratis-screenplay-modeling-lifecycle/references/completeness-self-check.md +1 -1
- package/package/corpus/skills/cratis-screenplay-modeling-lifecycle/references/verdicts-and-modes.md +1 -1
- package/package/corpus/skills/cratis-screenplay-read-surface/SKILL.md +17 -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 +11 -9
- 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/references/renderability-gate.md +1 -1
- 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 +13 -3
- package/package/corpus/skills/cratis-screenplay-slice-design/references/command-inventory.md +5 -3
- package/package/corpus/skills/cratis-screenplay-slice-design/references/review-questions.md +2 -1
- package/package/corpus/skills/cratis-screenplay-slice-design/references/rule-layers.md +4 -3
- 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 +111 -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 +22 -8
- package/package/corpus/skills/cratis-screenplay-streams-and-consistency/references/chronicle-boundaries.md +8 -4
- package/package/corpus/skills/cratis-screenplay-streams-and-consistency/references/consistency-and-concurrency.md +10 -0
- package/package/corpus/skills/cratis-screenplay-streams-and-consistency/references/stream-patterns.md +13 -2
- package/package/corpus/skills/cratis-screenplay-streams-and-consistency/references/streams-example.md +3 -3
- package/package/corpus/skills/cratis-screenplay-streams-and-consistency/verification.json +2 -2
- package/package/corpus/skills/cratis-screenplay-toolchain/SKILL.md +44 -35
- package/package/corpus/skills/cratis-screenplay-toolchain/references/cheat-sheet-example.md +3 -3
- package/package/corpus/skills/cratis-screenplay-toolchain/references/cheat-sheet.md +58 -2
- package/package/corpus/skills/cratis-screenplay-toolchain/references/diagnostics.md +128 -10
- package/package/corpus/skills/cratis-screenplay-toolchain/references/doc-contradictions.md +13 -1
- package/package/corpus/skills/cratis-screenplay-toolchain/references/executable-subset.md +37 -13
- package/package/corpus/skills/cratis-screenplay-toolchain/references/provenance.md +10 -2
- package/package/corpus/skills/cratis-screenplay-toolchain/references/renderable-subset.md +23 -1
- package/package/corpus/skills/cratis-screenplay-toolchain/references/sources-and-streams.md +111 -27
- package/package/corpus/skills/cratis-screenplay-toolchain/references/traps.md +27 -6
- package/package/corpus/skills/cratis-screenplay-toolchain/references/verdicts.md +34 -16
- package/package/corpus/skills/cratis-screenplay-toolchain/references/versions.md +98 -136
- package/package/corpus/skills/cratis-screenplay-toolchain/verification.json +13 -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 +10 -6
- 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
|
@@ -4,159 +4,121 @@
|
|
|
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.127.0** (`e70435a4`) | Released tag `v4.127.0`; installed `screenplay --version`; changed identity/compliance examples compiled |
|
|
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.127.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.127.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
|
+
At 4.127.0, `$identity` aliases built-in caller paths; declared identity details
|
|
90
|
+
remain metadata and their executable reads report PLAY0268. Bare `pii`/`secret`
|
|
91
|
+
still block binding; `personal` aliases `pii`. Legacy markers are accepted with
|
|
92
|
+
PLAY0565 information, duplicates warn PLAY0653. Event `subject` and processing
|
|
93
|
+
purposes are report-only metadata (PLAY0270); purpose checks/reports do not prove
|
|
94
|
+
lawfulness or enforce retention. See command-surface context/compliance references.
|
|
95
|
+
|
|
96
|
+
## Historical probes
|
|
97
|
+
|
|
98
|
+
- Screenplay 4.68.0 admitted v7; CLI 3.28.2/3.28.3 bundled 4.66.0 (v6 at most),
|
|
99
|
+
Stage 4.24.1/4.24.2. Those old negative v7 probes do not describe CLI 3.41.0.
|
|
100
|
+
- CLI before 3.28.2 bundled Screenplay 4.60.1: false cascade PLAY0285, v6 refusal
|
|
101
|
+
and dynamic-root initialization bug. The roots bug was fixed in 4.63.2.
|
|
102
|
+
- CLI 3.28.2 file validation ignored imports; this is an old probe, not a current
|
|
103
|
+
reason to invent missing declarations. Validate the complete root.
|
|
104
|
+
- Older standalone empty-folder probes exited 0. Current validation still needs
|
|
105
|
+
a nonzero file count, and specification execution needs an expected selection.
|
|
125
106
|
|
|
126
107
|
## Revisions and descriptions
|
|
127
108
|
|
|
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".
|
|
109
|
+
`modelRevision` exists only when binding succeeds; it is canonical semantic
|
|
110
|
+
identity, not source identity. Source positions and report-only metadata can
|
|
111
|
+
change source/workspace revisions without changing it. Persisted catalogs
|
|
112
|
+
preserve assigned identities; do not reconstruct them from names.
|
|
113
|
+
|
|
114
|
+
A render manifest's `semanticRevision` is a different provenance value, made
|
|
115
|
+
with the render name and bundled compiler. Do not compare it directly to MCP
|
|
116
|
+
`modelRevision`. Compare successive renders with the same identity and inputs.
|
|
154
117
|
|
|
155
118
|
## Upgrade checklist
|
|
156
119
|
|
|
157
|
-
1.
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
4. Check whether a `screenplay test` or `cratis screenplay test` exists (a V4 route).
|
|
120
|
+
1. Read installed versions and released dependency pins.
|
|
121
|
+
2. Check source, binder, reference runner and renderer admission separately.
|
|
122
|
+
3. Compile each changed example; execute specification examples with the
|
|
123
|
+
reference route. Preserve explicit expected-diagnostic checks.
|
|
124
|
+
4. Re-probe affected capabilities before replacing a historical version label.
|
|
@@ -3,21 +3,29 @@
|
|
|
3
3
|
"input": "Check a Screenplay model folder: which compiler should I run, what do V1 to V3 mean, and what does the cratis CLI do with my Automation slice?",
|
|
4
4
|
"fixtures": [],
|
|
5
5
|
"assertions": [
|
|
6
|
+
{ "kind": "skill-contains", "value": "4.127.0" },
|
|
7
|
+
{ "kind": "skill-contains", "value": "PLAY0653", "file": "references/diagnostics.md" },
|
|
8
|
+
{ "kind": "skill-contains", "value": "PLAY0646", "file": "references/diagnostics.md" },
|
|
9
|
+
{ "kind": "skill-contains", "value": "PLAY0595", "file": "references/diagnostics.md" },
|
|
10
|
+
{ "kind": "skill-contains", "value": "PLAY0652", "file": "references/diagnostics.md" },
|
|
11
|
+
{ "kind": "skill-contains", "value": "PLAY0504 | E", "file": "references/diagnostics.md" },
|
|
6
12
|
{ "kind": "skill-contains", "value": "references/versions.md" },
|
|
7
13
|
{ "kind": "skill-contains", "value": "PLAY0029" },
|
|
8
14
|
{ "kind": "skill-contains", "value": "--warnaserror" },
|
|
9
15
|
{ "kind": "skill-contains", "value": "4.68.0" },
|
|
10
16
|
{ "kind": "skill-contains", "value": "4.66.0" },
|
|
11
17
|
{ "kind": "skill-contains", "value": "references/generated-responses-example.md" },
|
|
12
|
-
{ "kind": "skill-contains", "value": "
|
|
13
|
-
{ "kind": "skill-contains", "value": "
|
|
18
|
+
{ "kind": "skill-contains", "value": "Operations and exact numeric" },
|
|
19
|
+
{ "kind": "skill-contains", "value": "Stage generated-value/response refusals `STAGE-ESM-028`/`029`" },
|
|
14
20
|
{ "kind": "skill-contains", "value": "cratis screenplay validate" },
|
|
15
21
|
{ "kind": "skill-contains", "value": "cli#244" },
|
|
16
22
|
{ "kind": "skill-contains", "value": "`notifications/initialized`" },
|
|
17
23
|
{ "kind": "skill-contains", "value": "A handler never binds" },
|
|
18
24
|
{ "kind": "skill-contains", "value": "references/sources-and-streams.md" },
|
|
19
|
-
{ "kind": "skill-contains", "value": "
|
|
20
|
-
{ "kind": "skill-contains", "value": "
|
|
21
|
-
{ "kind": "skill-contains", "value": "
|
|
25
|
+
{ "kind": "skill-contains", "value": "CLI-RENDER-004" },
|
|
26
|
+
{ "kind": "skill-contains", "value": "PLAY0514" },
|
|
27
|
+
{ "kind": "skill-contains", "value": "bind as ESM v8" },
|
|
28
|
+
{ "kind": "skill-contains", "value": "PLAY0530/0531", "file": "references/diagnostics.md" },
|
|
29
|
+
{ "kind": "skill-contains", "value": "Editor versus C# verdicts", "file": "references/diagnostics.md" }
|
|
22
30
|
]
|
|
23
31
|
}
|
|
@@ -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:
|
|
@@ -68,7 +68,7 @@ The `.play` model is the source of truth; Stage-managed output is derived from i
|
|
|
68
68
|
- Hand-written code goes in `Customizations/` (unmanaged), in a separate project, or in
|
|
69
69
|
an explicitly authorized gap-fill for scope Stage cannot render (`cratis-screenplay-render-and-gap-fill`).
|
|
70
70
|
- A customization never makes a rejected model renderable, and never weakens modeled
|
|
71
|
-
authorization, validation or
|
|
71
|
+
authorization, validation or personal-data and secret markers to get past a refusal.
|
|
72
72
|
- Never claim a whole-application result from a subset of the model.
|
|
73
73
|
|
|
74
74
|
## Publication and recovery
|
|
@@ -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.127.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" },
|