@cratis/pi 7.29.1 → 7.31.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-chronicle-client-dotnet/SKILL.md +14 -0
- package/package/corpus/skills/cratis-chronicle-client-dotnet/references/pinned-generation-delivery.md +92 -0
- package/package/corpus/skills/cratis-chronicle-event-type-migration/SKILL.md +24 -2
- package/package/corpus/skills/cratis-chronicle-event-type-migration/references/pinned-generations.md +114 -0
- 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
|
@@ -0,0 +1,119 @@
|
|
|
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
|
+
# Per-production routes and observer filters (released ESM v10)
|
|
5
|
+
|
|
6
|
+
## Contents
|
|
7
|
+
|
|
8
|
+
- Command defaults and complete overrides
|
|
9
|
+
- Observer selection
|
|
10
|
+
- Checked source form
|
|
11
|
+
- Admission and evidence
|
|
12
|
+
|
|
13
|
+
## Command defaults and complete overrides
|
|
14
|
+
|
|
15
|
+
Named event sources/streams and command routes bind as ESM v8 (verified at 4.125.0).
|
|
16
|
+
A routed command's identifier and known destinations must match the source's nominal
|
|
17
|
+
identifier type (PLAY0504). Allocation uses the generated identifier's type, or
|
|
18
|
+
without one requires a UUID-based source. Composite `streamId` routes map every
|
|
19
|
+
named part exactly once; scalar `streamId T` and `streamId = x` remain valid.
|
|
20
|
+
See [sources and streams](sources-and-streams.md) for declarations and encoding.
|
|
21
|
+
|
|
22
|
+
A command's plain, conditional or inline event production can carry its own
|
|
23
|
+
`stream Source.Stream` plus scalar or composite `streamId` mappings. This replaces
|
|
24
|
+
the **whole source, stream and stream id**, for that production only. Other
|
|
25
|
+
productions inherit the command route. Overrides do not supply `for`: state the
|
|
26
|
+
destination explicitly and keep its type compatible with the override's source.
|
|
27
|
+
There is no `no stream` override. A payload `stream = value` remains payload.
|
|
28
|
+
Reaction and refusal-branch productions cannot carry routes (PLAY0663).
|
|
29
|
+
|
|
30
|
+
Resolve the command route and every override eagerly after validation/requirements
|
|
31
|
+
and before generation. An invalid route in a skipped conditional production still
|
|
32
|
+
rejects the command atomically as Contract, leaving no new facts or allocation.
|
|
33
|
+
Mappings accept required nongenerated direct scalar command inputs or literals;
|
|
34
|
+
property paths remain PLAY0268 (#574), generated inputs PLAY0273. A portable
|
|
35
|
+
unkeyed override replaces a keyed command id, never inherits it; a renderer must
|
|
36
|
+
refuse that form if its adapter cannot clear inherited metadata.
|
|
37
|
+
|
|
38
|
+
## Observer selection
|
|
39
|
+
|
|
40
|
+
A reaction or reducer has at most one leaf `from Source` or `from Source.Stream`.
|
|
41
|
+
It matches stored source/stream names, not stream ids. Unrouted facts never match;
|
|
42
|
+
without a filter, existing observation behavior is unchanged. Direct reaction
|
|
43
|
+
productions, captures and public publication are unrouted. A filtered reaction may
|
|
44
|
+
only have `when Event` triggers on declared events, not clock/application triggers.
|
|
45
|
+
Filters are not available on projections or captures.
|
|
46
|
+
|
|
47
|
+
PLAY0665 rejects malformed, duplicate, child-bearing, unresolved/ambiguous filters
|
|
48
|
+
and non-event triggers. PLAY0666 warns when all statically known producers lie
|
|
49
|
+
outside the filter: include effective production overrides in this check. Handler
|
|
50
|
+
commands and foreign origins are unknown and suppress this C#-only warning.
|
|
51
|
+
A filtered opaque reducer returns typed Unsupported when matching given history
|
|
52
|
+
or the when-step reaches a transition; ignoring its body cannot prove absence.
|
|
53
|
+
|
|
54
|
+
## Checked source form
|
|
55
|
+
|
|
56
|
+
The override and filter select ESM v10. The second production keeps the command
|
|
57
|
+
default, while Booked is routed to Notes and can trigger Follow:
|
|
58
|
+
|
|
59
|
+
```screenplay
|
|
60
|
+
concept AccountId : String
|
|
61
|
+
eventsource Account
|
|
62
|
+
identifier AccountId
|
|
63
|
+
stream Base
|
|
64
|
+
streamId String
|
|
65
|
+
stream Notes
|
|
66
|
+
streamId String
|
|
67
|
+
module Accounts
|
|
68
|
+
feature Booking
|
|
69
|
+
slice StateChange Book
|
|
70
|
+
command Book
|
|
71
|
+
accountId AccountId identifier
|
|
72
|
+
period String
|
|
73
|
+
stream Account.Base
|
|
74
|
+
streamId = period
|
|
75
|
+
produces event Booked
|
|
76
|
+
for accountId
|
|
77
|
+
stream Account.Notes
|
|
78
|
+
streamId = period
|
|
79
|
+
produces event BookRecorded
|
|
80
|
+
for accountId
|
|
81
|
+
slice Automation FollowBooking
|
|
82
|
+
event Followed
|
|
83
|
+
reaction Follow
|
|
84
|
+
from Account.Notes
|
|
85
|
+
when Booked
|
|
86
|
+
produces Followed
|
|
87
|
+
specification RoutedReaction
|
|
88
|
+
when append Booked
|
|
89
|
+
for "account-1"
|
|
90
|
+
stream Account.Notes
|
|
91
|
+
streamId = "2026-10"
|
|
92
|
+
then Followed
|
|
93
|
+
no stream
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
For a composite override, the child form is `streamId` followed by every
|
|
97
|
+
`part = inputOrLiteral`. Mapping order does not change part correspondence.
|
|
98
|
+
Specification routes describe effective facts, not only the command default.
|
|
99
|
+
Cover inherited versus overridden routes, atomic skipped-route failure, matching
|
|
100
|
+
and wrong source/stream, and unrouted input. Read [specification route forms](sources-and-streams.md).
|
|
101
|
+
|
|
102
|
+
## Admission and evidence
|
|
103
|
+
|
|
104
|
+
ESM v10 was first published in 4.125.0 (reaction system identity). Production
|
|
105
|
+
routes and observer filters shipped in 4.129.0. Decision 0066 records that already
|
|
106
|
+
shipped extension as a retroactive exception; all three are now one frozen v10
|
|
107
|
+
contract. A consumer admitting v10 must include all three, not just identity.
|
|
108
|
+
Composite **read-model** keys are separate and remain unadmitted (PLAY0268, #599).
|
|
109
|
+
|
|
110
|
+
Previous CLI 3.46.1/Stage 4.52.0 refused versions above v7 before planning.
|
|
111
|
+
CLI 3.50.0/Stage 4.67.0 admits through v10 to construct checks: production overrides
|
|
112
|
+
still refuse STAGE-ESM-036 and reaction filters STAGE-ESM-035; reducer filters render.
|
|
113
|
+
A supported version number alone never proves target support or a passing render.
|
|
114
|
+
|
|
115
|
+
Source: Screenplay `v4.135.0:Documentation/screenplay/{event-sources,readmodels,reactions,diagnostics}.md`,
|
|
116
|
+
decisions 0061–0063/0066 and canonical corpus
|
|
117
|
+
`Source/DotNET/Screenplay.CanonicalCorpus/Corpus/EventRoutes/{production-routes,observer-filters}/source/`.
|
|
118
|
+
Stage `v4.67.0:Source/Rendering.Cratis/Semantics/{SemanticVersionFeatures,SemanticVersionFeatureAdmission}.cs`;
|
|
119
|
+
CLI `v3.50.0:Source/Cli/Commands/Render/RenderedSemanticVersions.cs`.
|
|
@@ -28,7 +28,14 @@ is adapted with the agreement of Martin Dilger and Nebulit GmbH.
|
|
|
28
28
|
|
|
29
29
|
## Sources read for facts
|
|
30
30
|
|
|
31
|
-
- Current
|
|
31
|
+
- Current public/keys/routes/version update: Screenplay `v4.135.0` (`b4e46130`),
|
|
32
|
+
unchanged release contract, `Semantics/Versions.cs`, `Documentation/screenplay/{events,slices,captures,readmodels,queries,event-sources,diagnostics,interoperability}.md`,
|
|
33
|
+
decisions 0049–0051 and 0060–0066. Composite view keys remain PLAY0268 (#599);
|
|
34
|
+
v11 literal lowering is admitted despite interoperability's unreleased label.
|
|
35
|
+
CLI `v3.50.0` (`546dea12`) pins Stage 4.67.0 and Screenplay 4.131.0;
|
|
36
|
+
`RenderedSemanticVersions.cs` and Stage's version-feature admission were read,
|
|
37
|
+
not executed as a new render/browser vector.
|
|
38
|
+
- Previous pin update: Screenplay `v4.131.0` (`71f3ef37`), published
|
|
32
39
|
`screenplay-contract.json`, `Source/DotNET/Screenplay.Mcp/{McpRevisionDiff,McpWorkspaces.Comparison,McpToolSchemas}.cs`
|
|
33
40
|
and `Documentation/screenplay/mcp/reference.md`; CLI `v3.46.1` (`73578fbf`)
|
|
34
41
|
`Directory.Packages.props`, `RenderedSemanticVersions.cs`, `RenderSettings.cs`,
|
|
@@ -7,13 +7,19 @@
|
|
|
7
7
|
- Ownership, publication and recovery
|
|
8
8
|
- Reading V5
|
|
9
9
|
|
|
10
|
-
Current pins: standalone Screenplay 4.
|
|
11
|
-
4.
|
|
12
|
-
above
|
|
10
|
+
Current pins: standalone Screenplay 4.135.0; CLI 3.50.0 bundles Screenplay
|
|
11
|
+
4.131.0 and Stage 4.67.0 (`versions.md`). CLI/Stage admit through v10 to construct
|
|
12
|
+
checks, not blanket rendering; above v10 is CLI-RENDER-004 (direct Stage:
|
|
13
|
+
STAGE-ESM-016). v9 publication/foreign facts and v10 reaction identity,
|
|
14
|
+
reaction filters and production overrides still refuse STAGE-ESM-032–036;
|
|
15
|
+
reducer filters render. v8 routes reach specific checks (including routed
|
|
16
|
+
read-model/query replay refusal STAGE-ESM-030). Case tables and v8+ `long`
|
|
17
|
+
whole numbers apply to the current default. Previous CLI 3.46.1/Stage 4.52.0
|
|
18
|
+
admitted only through v7 and applied neither newer rule. The historical v7 canonical-corpus check got
|
|
13
19
|
STAGE-ESM-028/029 for generated values/responses
|
|
14
20
|
(`v3.41.0:Source/Cli.Specs/for_ScreenplayPlanning/when_planning_an_esm_v7_model.cs`).
|
|
15
21
|
The following detailed Stage 4.24.x results are **historical**, not reverified
|
|
16
|
-
4.
|
|
22
|
+
4.67.0 claims. Run the bundled renderer before asserting current renderability.
|
|
17
23
|
|
|
18
24
|
Historical sources, all read at tags: Stage v4.24.1 `Source/Rendering.Cratis/Semantics/SemanticSurfaceLedger.cs`
|
|
19
25
|
(an exhaustive map of every ESM member to Rendered, Rejected(code) or Ignored),
|
|
@@ -61,7 +67,7 @@ accepted with PLAY0565 information); either still refuses binding. Identity bloc
|
|
|
61
67
|
purposes and event `subject` are authoring metadata, not provider realization;
|
|
62
68
|
executing identity detail reads still refuses PLAY0268. Current source/stream
|
|
63
69
|
routes are admitted as v8, including composite ids, not the historical binding
|
|
64
|
-
refusal above; CLI 3.
|
|
70
|
+
refusal above; current CLI 3.50.0 reaches Stage's v8 route checks. Never split hand-joined
|
|
65
71
|
legacy ids or drop protected ids into routing to fit a renderer (PLAY0515).
|
|
66
72
|
|
|
67
73
|
## Authoring consequences in renderable mode
|