@cratis/pi 7.29.0 → 7.30.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 +9 -4
- package/package/corpus/skills/cratis-screenplay-automations-and-translations/references/audit-format.md +4 -2
- package/package/corpus/skills/cratis-screenplay-automations-and-translations/references/automation-patterns.md +3 -3
- package/package/corpus/skills/cratis-screenplay-automations-and-translations/references/provenance.md +5 -2
- package/package/corpus/skills/cratis-screenplay-automations-and-translations/references/public-events-and-direction.md +137 -0
- package/package/corpus/skills/cratis-screenplay-automations-and-translations/verification.json +5 -1
- package/package/corpus/skills/cratis-screenplay-captures-and-reactions/SKILL.md +15 -16
- package/package/corpus/skills/cratis-screenplay-captures-and-reactions/references/invocation-identity.md +4 -4
- package/package/corpus/skills/cratis-screenplay-captures-and-reactions/references/product-sources.md +15 -0
- package/package/corpus/skills/cratis-screenplay-captures-and-reactions/verification.json +3 -1
- package/package/corpus/skills/cratis-screenplay-command-surface/SKILL.md +8 -9
- package/package/corpus/skills/cratis-screenplay-command-surface/references/context.md +1 -1
- package/package/corpus/skills/cratis-screenplay-command-surface/references/generated-values-and-responses.md +4 -4
- package/package/corpus/skills/cratis-screenplay-event-modeling/SKILL.md +2 -2
- package/package/corpus/skills/cratis-screenplay-event-modeling/references/parsed-not-runnable.md +1 -1
- package/package/corpus/skills/cratis-screenplay-legacy-extraction/references/generate-notes.md +2 -2
- package/package/corpus/skills/cratis-screenplay-model-authoring/SKILL.md +4 -4
- package/package/corpus/skills/cratis-screenplay-model-authoring/references/language-reference.md +7 -1
- package/package/corpus/skills/cratis-screenplay-model-authoring/references/mcp-tools.md +7 -2
- package/package/corpus/skills/cratis-screenplay-model-authoring/references/screen-authoring-workflow.md +5 -3
- package/package/corpus/skills/cratis-screenplay-model-authoring/verification.json +1 -1
- package/package/corpus/skills/cratis-screenplay-model-review/SKILL.md +10 -11
- package/package/corpus/skills/cratis-screenplay-model-review/references/anti-patterns.md +1 -1
- package/package/corpus/skills/cratis-screenplay-model-review/references/public-keys-and-routes.md +32 -0
- package/package/corpus/skills/cratis-screenplay-model-review/verification.json +1 -0
- package/package/corpus/skills/cratis-screenplay-projections/SKILL.md +11 -0
- package/package/corpus/skills/cratis-screenplay-read-surface/SKILL.md +19 -16
- package/package/corpus/skills/cratis-screenplay-read-surface/references/named-keys.md +122 -0
- package/package/corpus/skills/cratis-screenplay-read-surface/verification.json +3 -0
- package/package/corpus/skills/cratis-screenplay-render-and-gap-fill/SKILL.md +9 -6
- package/package/corpus/skills/cratis-screenplay-render-and-gap-fill/references/gap-fill-handoff.md +3 -3
- package/package/corpus/skills/cratis-screenplay-render-and-gap-fill/verification.json +1 -1
- package/package/corpus/skills/cratis-screenplay-scenario-coverage/SKILL.md +11 -0
- package/package/corpus/skills/cratis-screenplay-scenario-coverage/references/spec-forms-by-mode.md +2 -2
- package/package/corpus/skills/cratis-screenplay-slice-design/SKILL.md +32 -9
- package/package/corpus/skills/cratis-screenplay-slice-design/references/read-model-design.md +20 -13
- package/package/corpus/skills/cratis-screenplay-specifications/SKILL.md +12 -10
- package/package/corpus/skills/cratis-screenplay-specifications/references/examples-and-routes.md +3 -2
- package/package/corpus/skills/cratis-screenplay-specifications/references/source-notes.md +16 -0
- package/package/corpus/skills/cratis-screenplay-specifications/verification.json +2 -2
- package/package/corpus/skills/cratis-screenplay-streams-and-consistency/SKILL.md +2 -2
- package/package/corpus/skills/cratis-screenplay-streams-and-consistency/references/stream-patterns.md +2 -2
- package/package/corpus/skills/cratis-screenplay-streams-and-consistency/verification.json +1 -1
- package/package/corpus/skills/cratis-screenplay-toolchain/SKILL.md +19 -10
- package/package/corpus/skills/cratis-screenplay-toolchain/references/cheat-sheet.md +12 -1
- package/package/corpus/skills/cratis-screenplay-toolchain/references/diagnostics.md +55 -3
- package/package/corpus/skills/cratis-screenplay-toolchain/references/doc-contradictions.md +7 -4
- package/package/corpus/skills/cratis-screenplay-toolchain/references/executable-subset.md +30 -10
- package/package/corpus/skills/cratis-screenplay-toolchain/references/production-routes-and-filters.md +119 -0
- package/package/corpus/skills/cratis-screenplay-toolchain/references/provenance.md +8 -1
- package/package/corpus/skills/cratis-screenplay-toolchain/references/renderable-subset.md +11 -5
- package/package/corpus/skills/cratis-screenplay-toolchain/references/screenplay-contract.json +813 -0
- 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 +7 -5
- package/package/corpus/skills/cratis-screenplay-toolchain/references/traps.md +6 -6
- package/package/corpus/skills/cratis-screenplay-toolchain/references/verdicts.md +6 -5
- package/package/corpus/skills/cratis-screenplay-toolchain/references/versions.md +56 -28
- package/package/corpus/skills/cratis-screenplay-toolchain/verification.json +7 -1
- package/package/corpus/skills/cratis-screenplay-ui-composition/references/screen-composition-contract.md +4 -3
- package/package/corpus/skills/cratis-stage-rendering-and-sandbox/SKILL.md +11 -12
- package/package/corpus/skills/cratis-stage-rendering-and-sandbox/references/admission.md +14 -3
- package/package/corpus/skills/cratis-stage-rendering-and-sandbox/references/case-tables-and-whole-numbers.md +8 -6
- package/package/corpus/skills/cratis-stage-rendering-and-sandbox/verification.json +3 -1
- package/package.json +1 -1
|
@@ -12,9 +12,13 @@ guarantees. Then write it as `Automation` and `Translate` slices that say truthf
|
|
|
12
12
|
protected, what is only recorded, and who acts. Grammar depth is in
|
|
13
13
|
`cratis-screenplay-captures-and-reactions`; this skill owns the decisions.
|
|
14
14
|
|
|
15
|
-
**
|
|
16
|
-
|
|
15
|
+
**Translation crosses an application boundary:** inbound turns outside data or foreign
|
|
16
|
+
public events into private local facts; outbound publishes private facts as one local public
|
|
17
|
+
event type. Declare `direction inbound|outbound` when public metadata is used; omission
|
|
18
|
+
preserves historical inbound for legacy translations. Private-to-private follow-up is an
|
|
17
19
|
Automation (`produces` or `invokes`), even when a Chronicle reactor realizes it.
|
|
20
|
+
Read [public events and direction](references/public-events-and-direction.md) for released
|
|
21
|
+
ESM v9 forms, event-target folds, publication specifications and the Unsupported capture limit.
|
|
18
22
|
|
|
19
23
|
Work in the model first. Code appears only where it is truly needed: the external call, the
|
|
20
24
|
source adapter, the trusted actor, and everything Stage cannot render (below). Session and
|
|
@@ -35,8 +39,9 @@ identity, effect and pending-work contract at that point; do not postpone it to
|
|
|
35
39
|
(`references/realization-and-gap-fill.md`).
|
|
36
40
|
- Reaction `runs as system role "<Role>"` declares an invocation actor (ESM v10).
|
|
37
41
|
Without it the invoke has no caller. Historical CLI 3.41.0's 4.114.0 compiler
|
|
38
|
-
rejected the syntax (PLAY0137);
|
|
39
|
-
at render admission (CLI-RENDER-004).
|
|
42
|
+
rejected the syntax (PLAY0137); previous CLI 3.46.1 refused ESM v10
|
|
43
|
+
at render admission (CLI-RENDER-004). CLI 3.50.0 reaches Stage 4.67.0's
|
|
44
|
+
construct admission, which still refuses reaction identity (STAGE-ESM-034). Checked model/diagnostics: captures-and-reactions
|
|
40
45
|
`references/invocation-identity.md`.
|
|
41
46
|
|
|
42
47
|
## Effect guarantees and recovery traps
|
|
@@ -11,8 +11,10 @@ technique: partial work stays visible and nothing is skipped because it looked r
|
|
|
11
11
|
|
|
12
12
|
Result is `complete` only when every column is filled or says why it does not apply (for example
|
|
13
13
|
"direct effect: immediate, internal, cannot fail"). `open` names the unresolved decision and who
|
|
14
|
-
answers. `blocked` names the actual capability gap
|
|
15
|
-
3.
|
|
14
|
+
answers. `blocked` names the actual capability gap with intended behavior. For example,
|
|
15
|
+
CLI 3.50.0 admits ESM v10 to Stage 4.67.0 construct checks, where reaction identity
|
|
16
|
+
is refused with STAGE-ESM-034. Previous CLI 3.46.1 refused v10 at the version gate
|
|
17
|
+
with CLI-RENDER-004; do not report that historical refusal as the current gap.
|
|
16
18
|
|
|
17
19
|
## Per translation (capture or translator reaction)
|
|
18
20
|
| Source and type | Location | Correlation | Field dispositions | Target fields traced | Dedup and ordering | Trust boundary | Recovery owner | Named cases | Result |
|
|
@@ -72,9 +72,9 @@ Screenplay 4.125.0 declares the actor with reaction-level `runs as system role
|
|
|
72
72
|
"<Role>"` (ESM v10); without it a gated invocation has no caller and denies.
|
|
73
73
|
`given caller` is not an invocation actor. Role requirements remain enforced;
|
|
74
74
|
claim conditions for this system principal remain unknown. Historical CLI 3.41.0's
|
|
75
|
-
older compiler rejected the syntax (PLAY0137).
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
older compiler rejected the syntax (PLAY0137). CLI 3.50.0 bundles Screenplay 4.131.0 / Stage 4.67.0 and reaches v10
|
|
76
|
+
construct admission, but reaction identity still refuses STAGE-ESM-034.
|
|
77
|
+
Previous CLI 3.46.1 refused v10 at its version gate; see toolchain `references/versions.md`.
|
|
78
78
|
Use the checked model in captures-and-reactions `references/invocation-identity.md`.
|
|
79
79
|
Arc gap-fill uses `[ExecuteCommandsAsSystem("<role>")]` for returned commands,
|
|
80
80
|
not identity inferred from prose or an imperative pipeline call.
|
|
@@ -44,5 +44,8 @@ binds); tool-qualified verdict text; the trusted-actor text now names `[ExecuteC
|
|
|
44
44
|
`reactions.md`, `ReactionIdentityParser.cs`, `ReactionRefusalValidator.cs` and the
|
|
45
45
|
binder's v10 selection; the checked scenario passed reference execution. CLI
|
|
46
46
|
3.41.0's older parser and Stage 4.51.3's v7 planner were historical target limits.
|
|
47
|
-
|
|
48
|
-
v10
|
|
47
|
+
Previous CLI 3.46.1 refused v10 at its version gate. CLI 3.50.0 bundles
|
|
48
|
+
Screenplay 4.131.0/Stage 4.67.0, reaches v10 construct checks, and still refuses
|
|
49
|
+
reaction identity with STAGE-ESM-034; see toolchain `references/versions.md`.
|
|
50
|
+
Public/direction forms and routes/filters follow Screenplay v4.135.0 decisions
|
|
51
|
+
0049–0051 and 0060–0066, not the older inbound-only translation scope.
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
<!-- Copyright (c) Cratis. All rights reserved. -->
|
|
2
|
+
<!-- Licensed under the MIT license. See LICENSE file in the project root for full license information. -->
|
|
3
|
+
|
|
4
|
+
# Public events and translation direction (released ESM v9)
|
|
5
|
+
|
|
6
|
+
## Contents
|
|
7
|
+
|
|
8
|
+
- Choose the boundary and direction
|
|
9
|
+
- Outbound publication and specifications
|
|
10
|
+
- Inbound event captures
|
|
11
|
+
- Admission and evidence
|
|
12
|
+
|
|
13
|
+
## Choose the boundary and direction
|
|
14
|
+
|
|
15
|
+
Events are private by default. `public event X` declares a local public contract;
|
|
16
|
+
`event X from "store"` declares a foreign public event's shape locally. The quoted
|
|
17
|
+
origin is an opaque store name, not a path or declaration reference. Nothing checks
|
|
18
|
+
that the local shape matches the other application's contract. A public/foreign
|
|
19
|
+
`import Qualified.X from "store"` has no local shape and remains PLAY0268.
|
|
20
|
+
|
|
21
|
+
`direction inbound` and `direction outbound` belong directly inside a Translate
|
|
22
|
+
slice. Omission preserves historical inbound behavior for translations with no
|
|
23
|
+
public metadata. A translation declaring or using public metadata needs explicit
|
|
24
|
+
direction (PLAY0614), not a guess from its name.
|
|
25
|
+
|
|
26
|
+
- Inbound: accept public foreign events or outside data and produce private local
|
|
27
|
+
facts. Use `capture` or a translating reaction. Correlation, deduplication,
|
|
28
|
+
enrichment and recovery still need the method skill's decisions.
|
|
29
|
+
- Outbound: consume private local facts and publish exactly one local public event
|
|
30
|
+
type through a reaction or event-target projection/reducer. No capture belongs
|
|
31
|
+
here. A private-to-private follow-up is an Automation, not an outbound Translate.
|
|
32
|
+
- A command never produces a public event (PLAY0607), and a foreign public event
|
|
33
|
+
is never produced locally (PLAY0613). Export only the intended contract fields;
|
|
34
|
+
public visibility does not authorize exposing personal data or secrets.
|
|
35
|
+
|
|
36
|
+
## Outbound publication and specifications
|
|
37
|
+
|
|
38
|
+
`projection P => PublicEvent` resolves its target as an event rather than a read
|
|
39
|
+
model. Keep read-model and event names distinct. The outbound slice owns exactly
|
|
40
|
+
one local public event type; its builders target that event only. Event-target
|
|
41
|
+
reducers have the same boundary but opaque transitions: the reference evaluator
|
|
42
|
+
returns typed Unsupported when a transition is reached, not a successful fold.
|
|
43
|
+
|
|
44
|
+
An event-target projection holds one folded instance per event source id, not a
|
|
45
|
+
read-model key. It publishes when the folded instance is complete and differs from
|
|
46
|
+
the last published instance for that id. An identical repeated private fact emits
|
|
47
|
+
nothing; changed state emits a new public instance, never rewrites the old fact.
|
|
48
|
+
The reference fold admits only root-property set/clear from literals or event
|
|
49
|
+
properties; other mappings block planning. Publication is unrouted and reactions
|
|
50
|
+
can observe the new public fact. A route filter therefore cannot select publication.
|
|
51
|
+
|
|
52
|
+
This complete source uses the released publication specification form:
|
|
53
|
+
|
|
54
|
+
```screenplay
|
|
55
|
+
domain Contracts
|
|
56
|
+
concept OrderId : Uuid
|
|
57
|
+
concept OrderStatus : String
|
|
58
|
+
module Integration
|
|
59
|
+
feature Translation
|
|
60
|
+
slice StateChange PackOrder
|
|
61
|
+
command PackOrder
|
|
62
|
+
orderId OrderId identifier
|
|
63
|
+
carrier String
|
|
64
|
+
produces OrderPacked
|
|
65
|
+
for orderId
|
|
66
|
+
carrier = carrier
|
|
67
|
+
event OrderPacked
|
|
68
|
+
carrier String
|
|
69
|
+
slice Translate PublishOrderShipped
|
|
70
|
+
direction outbound
|
|
71
|
+
public event OrderShipped
|
|
72
|
+
carrier String
|
|
73
|
+
status OrderStatus
|
|
74
|
+
projection OrderShippedPublisher => OrderShipped
|
|
75
|
+
from OrderPacked
|
|
76
|
+
status = "packed"
|
|
77
|
+
specification PublishingAPackedOrder
|
|
78
|
+
when append OrderPacked
|
|
79
|
+
for "3fa85f64-5717-4562-b3fc-2c963f66afa6"
|
|
80
|
+
carrier = "DHL"
|
|
81
|
+
then OrderShipped
|
|
82
|
+
carrier = "DHL"
|
|
83
|
+
status = "packed"
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
`when append <PrivateEvent>` commits the input; the `then <PublicEvent>` list
|
|
87
|
+
contains only the follow-up publications, exhaustive and ordered. Also specify
|
|
88
|
+
incomplete state, unchanged repeat, changed state and independent event source ids.
|
|
89
|
+
An expected public instance is not a `then readmodel` assertion.
|
|
90
|
+
|
|
91
|
+
## Inbound event captures
|
|
92
|
+
|
|
93
|
+
The foreign declaration must carry a quoted origin. `source events` has one or
|
|
94
|
+
more distinct `from <ForeignEvent>` children; no URL, table or other setting is
|
|
95
|
+
allowed in that block. It is valid only in an explicitly inbound Translate slice.
|
|
96
|
+
|
|
97
|
+
```screenplay
|
|
98
|
+
domain Contracts
|
|
99
|
+
concept OrderId : Uuid
|
|
100
|
+
module Integration
|
|
101
|
+
feature Tracking
|
|
102
|
+
slice Translate TrackShipments
|
|
103
|
+
direction inbound
|
|
104
|
+
event ShipmentDispatched from "shipping"
|
|
105
|
+
orderId OrderId
|
|
106
|
+
event OrderDispatched
|
|
107
|
+
orderId OrderId
|
|
108
|
+
capture ShipmentTracking
|
|
109
|
+
source events
|
|
110
|
+
from ShipmentDispatched
|
|
111
|
+
key orderId
|
|
112
|
+
append OrderDispatched
|
|
113
|
+
orderId = $.orderId
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
This compiles and binds as ESM v9. Evaluating the events-source capture returns
|
|
117
|
+
typed Unsupported: the event-payload-to-working-record contract is not admitted.
|
|
118
|
+
Do not equate binding with a passing capture specification or invent that mapping.
|
|
119
|
+
Keep correlation and resulting private events in the model and report the runtime gap.
|
|
120
|
+
|
|
121
|
+
## Admission and evidence
|
|
122
|
+
|
|
123
|
+
ESM v9 shipped in Screenplay 4.117.0 and is selected only by use of public events,
|
|
124
|
+
origins, direction, event-target builders or events-source captures. At 4.135.0,
|
|
125
|
+
publication reference scenarios execute; imported shapes still refuse binding.
|
|
126
|
+
Stage 4.52.0 (previous CLI 3.46.1) audits only through v7: CLI-RENDER-004 precedes
|
|
127
|
+
its STAGE-ESM-016 version refusal. CLI 3.50.0/Stage 4.67.0 reaches construct
|
|
128
|
+
admission through v10 but still refuses publication (STAGE-ESM-032), foreign
|
|
129
|
+
events/events-source captures (STAGE-ESM-033); source admission is not rendering.
|
|
130
|
+
|
|
131
|
+
Source: Screenplay `v4.135.0:Documentation/screenplay/fixtures/public-events.play`,
|
|
132
|
+
`events.md`, `slices.md`, `captures.md`, decisions 0049–0051 and
|
|
133
|
+
`Source/DotNET/Screenplay.CanonicalCorpus/PublicEventsCorpus.cs`.
|
|
134
|
+
Renderer source: Stage `v4.52.0:Source/Rendering.Cratis/Semantics/SemanticCratisAdmission.cs`
|
|
135
|
+
and `v4.67.0:Source/Rendering.Cratis/Semantics/SemanticVersionFeatures.cs`.
|
|
136
|
+
Diagnostics and repairs: toolchain `references/diagnostics.md`; version allocation:
|
|
137
|
+
toolchain `references/versions.md`.
|
package/package/corpus/skills/cratis-screenplay-automations-and-translations/verification.json
CHANGED
|
@@ -3,12 +3,16 @@
|
|
|
3
3
|
"input": "Our payment provider sends webhooks when invoices are paid or refunded, and we must email a receipt afterwards. Model the integration and the follow-up in the Screenplay model.",
|
|
4
4
|
"fixtures": [],
|
|
5
5
|
"assertions": [
|
|
6
|
+
{ "kind": "skill-contains", "value": "direction outbound", "file": "references/public-events-and-direction.md" },
|
|
7
|
+
{ "kind": "skill-contains", "value": "source events", "file": "references/public-events-and-direction.md" },
|
|
8
|
+
{ "kind": "skill-contains", "value": "then OrderShipped", "file": "references/public-events-and-direction.md" },
|
|
9
|
+
{ "kind": "skill-contains", "value": "typed Unsupported", "file": "references/public-events-and-direction.md" },
|
|
6
10
|
{ "kind": "play-compiles" },
|
|
7
11
|
{ "kind": "skill-contains", "value": "`[ExecuteCommandsAsSystem(\"<role>\")]`" },
|
|
8
12
|
{ "kind": "skill-contains", "value": "ESM v10" },
|
|
9
13
|
{ "kind": "skill-contains", "value": "STAGE-ESM-024" },
|
|
10
14
|
{ "kind": "skill-contains", "value": "runs as system role" },
|
|
11
|
-
{ "kind": "skill-contains", "value": "**
|
|
15
|
+
{ "kind": "skill-contains", "value": "**Translation crosses an application boundary:**" },
|
|
12
16
|
{ "kind": "skill-contains", "value": "complete, open or blocked" },
|
|
13
17
|
{ "kind": "skill-contains", "value": "never write a mapping" },
|
|
14
18
|
{ "kind": "skill-contains", "value": "run-specifications" },
|
|
@@ -6,9 +6,8 @@ license: MIT
|
|
|
6
6
|
|
|
7
7
|
# Captures and reactions
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
slice runs when something happens.
|
|
9
|
+
`capture` accepts outside data; `reaction` responds to an occurrence.
|
|
10
|
+
Translate slices cross public boundaries; Automation slices cause private follow-up.
|
|
12
11
|
|
|
13
12
|
## Locate the model
|
|
14
13
|
|
|
@@ -26,16 +25,9 @@ source is the single flow model.
|
|
|
26
25
|
|
|
27
26
|
## Verified product sources
|
|
28
27
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
| `Cratis.Screenplay` | main `fd18129` | Command-only inline event boundary |
|
|
33
|
-
| `Cratis.Screenplay` | `4.66.0` (`c89198b`) | ESM v6: reactions, clock, trigger and capture specifications bind; `invokes` caller rule; probed with the standalone tool and its MCP server |
|
|
34
|
-
|
|
35
|
-
The table records historical examples/probes; they are not reclassified as
|
|
36
|
-
current execution evidence. Refusal/redelivery guidance follows released
|
|
37
|
-
v4.125.0 `reactions.md`/`specifications.md`. Current pins are in toolchain
|
|
38
|
-
`references/versions.md`; reverify before promoting an old probe to that version.
|
|
28
|
+
Read [product sources](references/product-sources.md) for retained historical
|
|
29
|
+
parser/binder probes and refusal/redelivery evidence. Current pins are in toolchain
|
|
30
|
+
`references/versions.md`; historical examples are not current execution evidence.
|
|
39
31
|
|
|
40
32
|
⚠️ **Which tool admits them depends on its Screenplay version.** The ESM level
|
|
41
33
|
decides, not the slice type:
|
|
@@ -57,6 +49,13 @@ them. Read `cratis-screenplay-toolchain` (`references/versions.md`) when selecti
|
|
|
57
49
|
Method (the four-part automation test, loops, translations versus automations):
|
|
58
50
|
`cratis-screenplay-automations-and-translations`.
|
|
59
51
|
|
|
52
|
+
## Public boundaries and observer selection
|
|
53
|
+
|
|
54
|
+
Read [ESM v9 translation](../cratis-screenplay-automations-and-translations/references/public-events-and-direction.md)
|
|
55
|
+
for `direction`, `source events`/`from`, and its typed Unsupported evaluation.
|
|
56
|
+
Read [v10 filters](../cratis-screenplay-toolchain/references/production-routes-and-filters.md)
|
|
57
|
+
for reaction/reducer `from Source[.Stream]`; unrouted facts never match.
|
|
58
|
+
|
|
60
59
|
## Specify what sets them off
|
|
61
60
|
|
|
62
61
|
A specification names what sets the automation off: `when clock`, `when trigger`
|
|
@@ -76,9 +75,9 @@ Read [invocation identity](references/invocation-identity.md) for the checked
|
|
|
76
75
|
scenario, claim/unknown semantics and PLAY0647–0652/0557 diagnostics.
|
|
77
76
|
|
|
78
77
|
Historical CLI 3.41.0's 4.114.0 compiler rejected this source with PLAY0137.
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
using Arc `[ExecuteCommandsAsSystem]` for returned commands. Without that attribute
|
|
78
|
+
Previous CLI 3.46.1 refused v10 (CLI-RENDER-004); CLI 3.50.0 reaches
|
|
79
|
+
Stage 4.67.0's construct admission, still refusing identity (STAGE-ESM-034).
|
|
80
|
+
Target realization is gap-fill, using Arc `[ExecuteCommandsAsSystem]` for returned commands. Without that attribute
|
|
82
81
|
Arc supplies no principal and `[Authorize]`/`[Roles]` deny. Each invoked command
|
|
83
82
|
is atomic, not the whole cascade; earlier accepted facts remain after a later refusal.
|
|
84
83
|
|
|
@@ -71,10 +71,10 @@ module Work
|
|
|
71
71
|
|
|
72
72
|
Historical CLI 3.41.0 bundled Screenplay 4.114.0, which did not parse `runs as`:
|
|
73
73
|
the example's `cratis screenplay validate --executable --warnings-as-errors`
|
|
74
|
-
returned PLAY0137, exit 5. This is not a current parser claim.
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
74
|
+
returned PLAY0137, exit 5. This is not a current parser claim. CLI 3.50.0 bundles
|
|
75
|
+
Screenplay 4.131.0/Stage 4.67.0 and reaches v10 construct admission, but
|
|
76
|
+
reaction identity still refuses STAGE-ESM-034. Previous CLI 3.46.1/Stage 4.52.0
|
|
77
|
+
audited through v7 only (`references/versions.md` in toolchain).
|
|
78
78
|
Clock/application-trigger identities have no Stage Arc realization either.
|
|
79
79
|
Use authorized gap-fill with the model as contract; returned-command Arc identity
|
|
80
80
|
uses `[ExecuteCommandsAsSystem]`, never permission inferred from a model header.
|
package/package/corpus/skills/cratis-screenplay-captures-and-reactions/references/product-sources.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<!-- Copyright (c) Cratis. All rights reserved. -->
|
|
2
|
+
<!-- Licensed under the MIT license. See LICENSE file in the project root for full license information. -->
|
|
3
|
+
|
|
4
|
+
# Retained product-source evidence
|
|
5
|
+
|
|
6
|
+
| Package | Version | Purpose |
|
|
7
|
+
| --- | --- | --- |
|
|
8
|
+
| `Cratis.Screenplay` | `4.31.0` | CDL parser, reaction and trigger parsers, diagnostics, semantic binder |
|
|
9
|
+
| `Cratis.Screenplay` | main `fd18129` | Command-only inline event boundary |
|
|
10
|
+
| `Cratis.Screenplay` | `4.66.0` (`c89198b`) | ESM v6: reactions, clock, trigger and capture specifications bind; `invokes` caller rule; probed with the standalone tool and its MCP server |
|
|
11
|
+
|
|
12
|
+
The table records historical examples/probes, not current execution evidence.
|
|
13
|
+
Refusal/redelivery guidance follows released v4.125.0 `reactions.md`/`specifications.md`.
|
|
14
|
+
Current pins live in toolchain `references/versions.md`; reverify before promoting
|
|
15
|
+
an old probe to that version.
|
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
"input": "Translate external data into events and declare a reaction.",
|
|
4
4
|
"fixtures": [],
|
|
5
5
|
"assertions": [
|
|
6
|
+
{ "kind": "skill-contains", "value": "unrouted facts never match" },
|
|
7
|
+
{ "kind": "skill-contains", "value": "source events" },
|
|
6
8
|
{ "kind": "play-compiles" },
|
|
7
9
|
{
|
|
8
10
|
"kind": "skill-contains",
|
|
9
|
-
"value": "main `fd18129`"
|
|
11
|
+
"value": "main `fd18129`", "file": "references/product-sources.md"
|
|
10
12
|
},
|
|
11
13
|
{
|
|
12
14
|
"kind": "skill-contains",
|
|
@@ -260,14 +260,13 @@ produces when isProForma == true
|
|
|
260
260
|
|
|
261
261
|
## Routes and external operations
|
|
262
262
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
`references/sources-and-streams.md`.
|
|
263
|
+
Routes bind as ESM v8; production `stream Source.Stream` overrides
|
|
264
|
+
select v10. Read toolchain [routes](../cratis-screenplay-toolchain/references/production-routes-and-filters.md)
|
|
265
|
+
and [source/stream declarations](../cratis-screenplay-toolchain/references/sources-and-streams.md).
|
|
266
|
+
`public event X` is a local export; `event X from "store"` is a locally declared,
|
|
267
|
+
unverified foreign shape. Commands never produce public events. Read
|
|
268
|
+
[translation direction](../cratis-screenplay-automations-and-translations/references/public-events-and-direction.md)
|
|
269
|
+
for the released ESM v9 boundary and quoted opaque origins.
|
|
271
270
|
|
|
272
271
|
Use `system`, `uses` and inline/standalone `operation` declarations to state
|
|
273
272
|
external work in the authored production sequence, with execute/compensate phase
|
|
@@ -369,7 +368,7 @@ Four contexts, and **what each omits is load-bearing** — when writing a code b
|
|
|
369
368
|
## Verify
|
|
370
369
|
|
|
371
370
|
- [ ] Validate the complete model root with warnings as errors; name the tool,
|
|
372
|
-
version and result. Current pins: standalone 4.
|
|
371
|
+
version and result. Current pins: standalone 4.135.0 / CLI 3.50.0; bundle
|
|
373
372
|
compatibility and execution are separate checks.
|
|
374
373
|
- [ ] No unintended `PLAY0478` or `PLAY0479` information remains.
|
|
375
374
|
- [ ] At most one command property carries `identifier`, and no event property does.
|
|
@@ -105,7 +105,7 @@ Checked at Screenplay 4.127.0: `$identity.<property>` is the same caller value a
|
|
|
105
105
|
is supported, not deprecated. Historical `cratis` CLI 3.41.0 bundled Screenplay 4.114.0, which predated both:
|
|
106
106
|
its parser rejected a top-level `identity` block (`PLAY0001`), and with `--executable` it read a
|
|
107
107
|
`$identity.<property>` mapping as a raw expression (`PLAY0268`). Those checks used standalone 4.127.0;
|
|
108
|
-
they are not current CLI 3.
|
|
108
|
+
they are not current CLI 3.50.0/Screenplay 4.131.0 parser claims. Check current renderer
|
|
109
109
|
admission separately before choosing caller mappings. Built-ins are `id`, `name`, `userName`,
|
|
110
110
|
`isAuthenticated`, `roles`, `claims.<name>` (everything after `claims.` is opaque).
|
|
111
111
|
Bare `$identity` reports PLAY0152; unknown properties report PLAY0155. Only
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
## Generated values and responses (ESM v7)
|
|
2
2
|
|
|
3
3
|
A `generated` command property and `returns` response bind and reference-execute
|
|
4
|
-
as ESM v7 (checked at 4.68.0). Current pins are standalone Screenplay 4.
|
|
5
|
-
and CLI 3.
|
|
4
|
+
as ESM v7 (checked at 4.68.0). Current pins are standalone Screenplay 4.135.0
|
|
5
|
+
and CLI 3.50.0 (bundled Screenplay 4.131.0/Stage 4.67.0); `cratis-screenplay-toolchain`
|
|
6
6
|
`references/versions.md` owns the table. CLI#261 is closed: CLI now admits v7
|
|
7
7
|
to Stage planning. The historical CLI 3.41.0 v7 canonical corpus received Stage
|
|
8
8
|
generated-value and response refusals STAGE-ESM-028/029. Do not turn this into a blanket compiler
|
|
@@ -45,8 +45,8 @@ Rules (all read at `v4.68.0`):
|
|
|
45
45
|
|
|
46
46
|
Operations remain authorable/unadmitted (PLAY0268). Named event sources,
|
|
47
47
|
streams and command/specification routes instead bind and reference-execute as
|
|
48
|
-
ESM v8 at 4.125.0; CLI 3.
|
|
49
|
-
|
|
48
|
+
ESM v8 at 4.125.0; CLI 3.50.0 reaches Stage construct admission through v10,
|
|
49
|
+
not blanket target support. Syntax/MCP acceptance alone is not execution. Source/stream
|
|
50
50
|
forms and realization boundary: `cratis-screenplay-toolchain`
|
|
51
51
|
`references/sources-and-streams.md`. Do not infer further syntax or provider
|
|
52
52
|
admission from decision numbers.
|
|
@@ -139,8 +139,8 @@ What binds depends on **which tool** you ask, so name the tool and its version:
|
|
|
139
139
|
standalone 4.125.0. Use `screenplay test` or MCP `run-specifications` for V4.
|
|
140
140
|
Operations/systems, exact numbers and refusal/redelivery remain unadmitted.
|
|
141
141
|
Historical CLI 3.41.0 rejected `runs as` syntax and its Stage 4.51.3 check
|
|
142
|
-
refused generated values/responses with STAGE-ESM-028/029.
|
|
143
|
-
|
|
142
|
+
refused generated values/responses with STAGE-ESM-028/029. CLI 3.50.0 bundles
|
|
143
|
+
Screenplay 4.131.0/Stage 4.67.0; v10 reaches construct admission, not full support.
|
|
144
144
|
Source/binding admission and target realization are separate gates.
|
|
145
145
|
|
|
146
146
|
The ESM versions, the full disposition table and the Step 7 clock example's binding
|
package/package/corpus/skills/cratis-screenplay-event-modeling/references/parsed-not-runnable.md
CHANGED
|
@@ -28,7 +28,7 @@ Pins and consumer boundaries: toolchain `references/versions.md`.
|
|
|
28
28
|
| Command reads/concurrency | Legacy unprotected decisions, PLAY0271 |
|
|
29
29
|
| Invokes-only trigger reads | Report-only, not protected state; direct production with reads refuses |
|
|
30
30
|
| Generated values/responses | v7 binding/reference execution; historical Stage 4.51.3 check: member refusals STAGE-ESM-028/029 |
|
|
31
|
-
| Sources/streams and command/specification routes | v8 binding/reference execution;
|
|
31
|
+
| Sources/streams and command/specification routes | v8 binding/reference execution; CLI 3.50.0 reaches Stage construct checks through v10 |
|
|
32
32
|
| Declared reaction invocation actor | v10 binding/reference execution; older CLI parser PLAY0137; Stage planner refuses v10 |
|
|
33
33
|
| Operations/systems, exact numbers, refusal/redelivery | Source accepted; whole binding refuses PLAY0268 |
|
|
34
34
|
| UI | Authoring/deferred metadata; runtime support is a separate consumer contract |
|
package/package/corpus/skills/cratis-screenplay-legacy-extraction/references/generate-notes.md
CHANGED
|
@@ -17,9 +17,9 @@ cratis-screenplay-toolchain `references/versions.md`; behaviour from the cratis
|
|
|
17
17
|
Screenplay.CritterStack `v0.24.0`. Version-specific capability facts belong in cratis-screenplay-toolchain
|
|
18
18
|
`references/versions.md`.
|
|
19
19
|
|
|
20
|
-
Current CLI is 3.
|
|
20
|
+
Current CLI is 3.50.0, with Screenplay 4.131.0 / Stage 4.67.0 /
|
|
21
21
|
Arc.Screenplay 22.54.0 / Chronicle 19.32.0 / Fundamentals 7.22.8
|
|
22
|
-
(`references/versions.md` in the toolchain; standalone Screenplay is 4.
|
|
22
|
+
(`references/versions.md` in the toolchain; standalone Screenplay is 4.135.0).
|
|
23
23
|
Option/admission evidence checked at CLI 3.41.0: released
|
|
24
24
|
`GenerateScreenplaySettings.cs`, `ArcScreenplayGeneration.cs`, v7 planning specs
|
|
25
25
|
and `Documentation/reference/screenplay.md`; older diagnostic probes below keep
|
|
@@ -23,7 +23,7 @@ contract is in `cratis-screenplay-ui-composition`.
|
|
|
23
23
|
|
|
24
24
|
## Verified product sources
|
|
25
25
|
|
|
26
|
-
Current authoring/MCP guidance follows Screenplay v4.
|
|
26
|
+
Current authoring/MCP guidance follows Screenplay v4.135.0
|
|
27
27
|
`Documentation/screenplay/mcp/`, `ast-authoring.md`, `folders.md`, `vscode.md`.
|
|
28
28
|
Discover installed tools and schemas; CLI bundles can differ from the standalone
|
|
29
29
|
tool. Pins are in `cratis-screenplay-toolchain` `references/versions.md`.
|
|
@@ -291,9 +291,9 @@ that the code compiles or behaves. Read `references/mcp-tools.md#code-attachment
|
|
|
291
291
|
it defines them and maps them onto V1 to V5. `screenplay --warnaserror` checks
|
|
292
292
|
syntax plus the consistency rules (`PLAY0282`-`PLAY0294`) but never binds, so a
|
|
293
293
|
clean run is not a bound or executable result.
|
|
294
|
-
- Operations
|
|
295
|
-
|
|
296
|
-
|
|
294
|
+
- Operations/`numbers exact` remain unadmitted; routes bind as v8, public
|
|
295
|
+
boundaries v9, identity/overrides/filters v10, qualifying non-route Double
|
|
296
|
+
literals v11. CLI 3.50.0 reaches Stage checks through v10. Never drop or stub source contracts to bind.
|
|
297
297
|
- Distinguish authoring acceptance from `executableReady`; unsupported backend
|
|
298
298
|
capabilities are not a reason to drop source constructs or invent stubs.
|
|
299
299
|
- If execution is intended, validate with the owning downstream runtime as well.
|
package/package/corpus/skills/cratis-screenplay-model-authoring/references/language-reference.md
CHANGED
|
@@ -243,6 +243,12 @@ v4.31.0 table, re-read against v4.66.0 and v4.68.0 documentation and probed thro
|
|
|
243
243
|
the standalone 4.66.0 tool for the rows marked "probed"; Cratis CLI 3.28.2 and 3.28.3 bundle
|
|
244
244
|
Screenplay 4.66.0 (before 3.28.2, Screenplay 4.60.1, differ where stated).
|
|
245
245
|
|
|
246
|
+
Read-model identity and query admission below are corrected to 4.135.0:
|
|
247
|
+
explicit trailing `key` wins; otherwise single-instance queries in the owning slice
|
|
248
|
+
must agree on `by`. Only with no single-instance identifier and an admitted list
|
|
249
|
+
query does conventional `*Id` inference run. Queryless views need explicit `key`.
|
|
250
|
+
See read-surface `references/named-keys.md` for the collection-key exclusion algorithm.
|
|
251
|
+
|
|
246
252
|
| Disposition | Constructs |
|
|
247
253
|
| --- | --- |
|
|
248
254
|
| Binds and runs in the reference runner | `StateChange`/`StateView` slices; `produces` including `when` conditions over command properties and literal tags; the portable validation rules, `matches email`, quoted `matches` patterns and `require` over command properties; declarative policies and `authorize` on modules, features, commands and keyed queries; `unique` constraints; projections as Chronicle lowers them, including variants, except the projection constructs in the next row; specifications, including `given caller`, `then denied` and `when append` |
|
|
@@ -254,7 +260,7 @@ Screenplay 4.66.0 (before 3.28.2, Screenplay 4.60.1, differ where stated).
|
|
|
254
260
|
| Binds as ESM v7 on standalone Screenplay 4.68.0 (source and release notes; `PLAY0268` on the 4.66.0 in Cratis CLI 3.28.x, probed) | `generated` properties and `returns` responses, generated fixtures and `then returns`: bound and executed by the reference runner; a policy, rule or requirement that references a generated value is `PLAY0273`, and a generated property on a concept with validation rules is `PLAY0268`. Stage 4.24.2 does not render them (`STAGE-ESM-016`, tracked in Stage#201): gap-fill |
|
|
255
261
|
| Authorable, not executable (PLAY0268) | Systems/operations, exact numbers and refusal/redelivery remain unadmitted |
|
|
256
262
|
| Current routing and actor admission | Sources/streams and command/specification routes bind and reference-execute as v8; reaction `runs as system role` supplies the invocation actor as v10 on 4.125.0. Whole-workspace binding determines executable availability; CLI/Stage realization remains separate |
|
|
257
|
-
| Blocks binding (`PLAY0268`) | `pii`/`secret` concepts (also legacy spellings; historical probe: "compliance attributes require portable data-subject semantics"), command `handler` (never binds; a command cannot declare both `produces` and `handler`, `PLAY0035`), bare `rule <Name>`, `require` or conditions over read-model paths, dates and `today` in comparisons, `$context.tenant`/claims/roles/causation in `produces`, `$env` conditions, `file` constraints, unquoted `import` of an external contract, a read model
|
|
263
|
+
| Blocks binding (`PLAY0268`) | `pii`/`secret` concepts (also legacy spellings; historical probe: "compliance attributes require portable data-subject semantics"), command `handler` (never binds; a command cannot declare both `produces` and `handler`, `PLAY0035`), bare `rule <Name>`, `require` or conditions over read-model paths, dates and `today` in comparisons, `$context.tenant`/claims/roles/causation in `produces`, `$env` conditions, `file` constraints, unquoted `import` of an external contract, a read model with neither explicit `key` nor unambiguous query-based identity as described above (composite keys remain unadmitted), queries with filters, scope, performer, context-derived `by` or composite `by` blocks (optional keyed and collection queries, including observable delivery, bind at 4.135.0), `$causedBy` and templates in projections |
|
|
258
264
|
| Blocks binding (`PLAY0271`, legacy meaning) | Command `reads` and `concurrency` |
|
|
259
265
|
| Deferred (`PLAY0269`, information) | Screens, layouts, templates, forms, contributions, UI profiles, themes, behaviors and `on`/`uses` |
|
|
260
266
|
| Metadata only (`PLAY0270`, information) | `domain`, `seed`, `persona`, trigger and other descriptions, and `file` provenance on declarations |
|
|
@@ -98,6 +98,9 @@ with `view: "diagnostics"`, then `view: "repairs"` at the current revision.
|
|
|
98
98
|
| `PLAY0469` | Remove an inline same-source identifier property and mapping, retiring its semantic address. This changes the contract; `canFixAll` is false. Refuse other consumers, opaque impact, changed routing or comment loss. Plain contracts get guidance only. |
|
|
99
99
|
| `PLAY0479` | Migrate one optional type spelling, or all in a document, preserving syntax and trivia. Exclude `query Q => observable?`. |
|
|
100
100
|
| `PLAY0563/0564` | Expand a one-line interaction alternative / turn a strict item `where` into one block-form `when`. Individual review, canonical formatting, no pinned evidence; refuse comment loss. Opaque non-item-condition text has no PLAY0564 repair. |
|
|
101
|
+
| `PLAY0614` | Declare Translate direction only when exactly one inbound/outbound interpretation fits public metadata; never change event visibility to make a repair fit. |
|
|
102
|
+
| `PLAY0661` | Complete command reads only when each missing part has one same-named compatible source; preserve authored parts and refuse ambiguity. Queries and trigger reads have no repair. |
|
|
103
|
+
| `PLAY0664` | Remove an override identical to the command's complete source/stream/id route. |
|
|
101
104
|
| `PLAY0516` | Move a producing sibling declaration/import before its consumer, or pin an already placed file before a retained glob. Preserve catalogs, comments, placement and executable readiness; introduce no timeline findings. Own-sub-feature edges, cycles, unranked members and mixed/different-parent boundaries have no repair. Rediscover after each move; pinned evidence is unsupported. |
|
|
102
105
|
|
|
103
106
|
These discoveries verify acceptance before listing a repair. Only compact
|
|
@@ -188,7 +191,8 @@ persona/policy and table/case/caseParameter provenance. Neither view executes.
|
|
|
188
191
|
|
|
189
192
|
Screenplay v4.127.0 `mcp/reference.md` and `authoring-tools.md` describe these
|
|
190
193
|
additions (checked at 4.127.0); discover installed schemas because current
|
|
191
|
-
CLI 3.46.1
|
|
194
|
+
Previous CLI 3.46.1 bundled Screenplay 4.130.0; CLI 3.50.0 bundles
|
|
195
|
+
4.131.0, so these source objects are available there too.
|
|
192
196
|
|
|
193
197
|
- Identity/detail summaries expose declared sources; `$identity` has its own
|
|
194
198
|
expression node. The block alone stays executable-ready, but executable reads
|
|
@@ -322,7 +326,8 @@ the open model as candidate:
|
|
|
322
326
|
}
|
|
323
327
|
```
|
|
324
328
|
|
|
325
|
-
These source objects require Screenplay 4.131.0; CLI 3.
|
|
329
|
+
These source objects require Screenplay 4.131.0; CLI 3.50.0 bundles it
|
|
330
|
+
(previous CLI 3.46.1 bundled 4.130.0).
|
|
326
331
|
Discover installed schemas rather than assuming bundle parity.
|
|
327
332
|
Check that the registered worktree is checked out at the intended commit and
|
|
328
333
|
contains the baseline model; Git refs are not resolved. An admitted missing
|
|
@@ -146,10 +146,12 @@ Historical verified public vector and executable checks:
|
|
|
146
146
|
|
|
147
147
|
- executed toolchain: public CLI 3.43.0 (`23e5a24`), whose default runtime was
|
|
148
148
|
`cratis/stage:4.52.0` and which bundled Screenplay 4.127.0. Published since,
|
|
149
|
-
and not verified by this vector: Scene 4.17.0, Screenplay 4.133.1, Stage 4.64.0,
|
|
150
|
-
3.46.1 (bundling Screenplay 4.130.0, default Stage
|
|
149
|
+
and not verified by this vector: Scene 4.17.0, Screenplay 4.133.1, Stage 4.64.0,
|
|
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 are CLI 3.50.0 (Screenplay 4.131.0 / Stage 4.67.0)
|
|
152
|
+
and standalone Screenplay 4.135.0; see toolchain `references/versions.md`.
|
|
151
153
|
Compiler claims from this `cratis` probe are 4.127.0 claims, not current CLI
|
|
152
|
-
3.
|
|
154
|
+
3.50.0/Screenplay 4.131.0 claims;
|
|
153
155
|
- fixture root: `Source/DotNET/Screenplay.CanonicalCorpus/Corpus/ScreenComposition/v1/source/folder`
|
|
154
156
|
in the Screenplay repository;
|
|
155
157
|
- 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`; CLI 3.46.1
|
|
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; CLI 3.50.0 bundles them |
|
|
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
|
|
@@ -243,18 +243,17 @@ verdict follows the rules in `references/report-template.md`.
|
|
|
243
243
|
- Complete examples in this skill compile: `references/worked-example.md`.
|
|
244
244
|
|
|
245
245
|
## Route near misses
|
|
246
|
-
-
|
|
247
|
-
`cratis-screenplay-
|
|
248
|
-
`cratis-screenplay-
|
|
249
|
-
|
|
250
|
-
-
|
|
251
|
-
diagnostics: `cratis-screenplay-toolchain`. Construct mechanics: `cratis-screenplay-specifications`,
|
|
246
|
+
- Specs: `cratis-screenplay-scenario-coverage`; slices: `cratis-screenplay-slice-design`;
|
|
247
|
+
streams/invariants: `cratis-screenplay-streams-and-consistency`;
|
|
248
|
+
reactions/translations: `cratis-screenplay-automations-and-translations`.
|
|
249
|
+
- Modes/verdicts: `cratis-screenplay-modeling-lifecycle`; tools/diagnostics:
|
|
250
|
+
`cratis-screenplay-toolchain`; syntax: `cratis-screenplay-specifications`,
|
|
252
251
|
`cratis-screenplay-command-surface`, `cratis-screenplay-projections`.
|
|
253
|
-
-
|
|
254
|
-
|
|
255
|
-
`cratis-application-slice-conformance`.
|
|
252
|
+
- Compliance: `cratis-chronicle-event-modeling`; rendered/gap-filled code:
|
|
253
|
+
`cratis-screenplay-render-and-gap-fill`, `cratis-code-review`, `cratis-application-slice-conformance`.
|
|
256
254
|
|
|
257
255
|
## References (load on demand)
|
|
256
|
+
- Review public leaks, direction, complete keys and effective routes with [public/key/route checks](references/public-keys-and-routes.md).
|
|
258
257
|
- Read `references/checklist.md` when performing the element sweep and phased audit; it contains eleven phases, 89 checks, tiers and evidence sources.
|
|
259
258
|
- Read `references/anti-patterns.md` when investigating an anti-pattern signal; it gives the signal, why it matters, tier and Screenplay fix.
|
|
260
259
|
- Read `references/report-template.md` when classifying findings, deciding the verdict, writing the report or conducting a re-review; it defines report, severity and verdict rules.
|
|
@@ -263,4 +262,4 @@ verdict follows the rules in `references/report-template.md`.
|
|
|
263
262
|
- Read `references/business-questions.md` when conducting the business-question pass; it contains the explainer journey method, prompts and word translation.
|
|
264
263
|
|
|
265
264
|
## Lineage
|
|
266
|
-
|
|
265
|
+
Method lineage, attribution and adaptation permissions: `references/provenance.md`.
|
|
@@ -62,7 +62,7 @@ the problem, the checks it violates, the fix, all pinned to one declaration.
|
|
|
62
62
|
| Missing `for` | an event production (`produces <Event>` or `produces event`) without `for`. Not operation productions: they are authorable design intent, belong to commands, and take no event `for`, tags or routing | runtimes disagree on the destination | C (executable) / D | `for <identifier>` |
|
|
63
63
|
| Unbuilt read-model field | field no projection maps and AutoMap cannot fill | always empty; not reported by the compiler | D | map it or remove it |
|
|
64
64
|
| Undeclared removal/append event | `remove with` or capture `append` names an undeclared event | passes V1, fails binding (V2/V3, PLAY0273) | C (executable) / D | declare or fix the name; run V3 |
|
|
65
|
-
| Gated command invoked by a reaction without a declared actor | reaction `invokes` a command under a caller policy and has no `runs as system role "<Role>"` that satisfies the gate | the invocation carries no caller: rejected at run time | D (major) | declare `runs as system role "<Role>"` with the least-privilege role the gate admits (ESM v10, Screenplay 4.125.0;
|
|
65
|
+
| Gated command invoked by a reaction without a declared actor | reaction `invokes` a command under a caller policy and has no `runs as system role "<Role>"` that satisfies the gate | the invocation carries no caller: rejected at run time | D (major) | declare `runs as system role "<Role>"` with the least-privilege role the gate admits (ESM v10, Screenplay 4.125.0; previous CLI 3.46.1 refused v10 with CLI-RENDER-004, so gap-fill) or record another trusted-path decision - never just delete the gate. A matching `runs as system role` is the admitted trusted path, not a defect |
|
|
66
66
|
| `reads` + `produces` reaction | reaction both reads a view and produces | fails binding | C (executable) | invoke a command, or produce without reads |
|
|
67
67
|
| `reads` treated as protection | rule "checked" because the command or reaction `reads` a view | `reads` enforces nothing | D (major) | keep or introduce `reads <View>` + `require ... message` as stated intent, mark it NOT enforced in the slice `description`, name the target (`[ProtectedDecision]` + `DecisionRead<T>`, Chronicle DCB, or a constraint where it fits); checklist E3 |
|
|
68
68
|
| Caller-supplied state rule | `require currentStatus == "open"` where the caller sends `currentStatus` | the caller decides its own permission | D (major) | read the stored state with `reads`; keep or introduce `reads <View>` + `require ... message` as stated intent, mark it NOT enforced in the slice `description`, name the target (`[ProtectedDecision]` + `DecisionRead<T>`, Chronicle DCB, or a constraint where it fits); checklist E3 |
|