@cratis/pi 7.34.0 → 7.34.1
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-reactor/references/slice-delivery-checklist.md +1 -1
- package/package/corpus/skills/cratis-screenplay-automations-and-translations/references/realization-and-gap-fill.md +1 -1
- package/package/corpus/skills/cratis-screenplay-captures-and-reactions/SKILL.md +1 -1
- package/package/corpus/skills/cratis-screenplay-command-surface/references/compliance.md +1 -1
- package/package/corpus/skills/cratis-screenplay-event-modeling/SKILL.md +1 -1
- package/package/corpus/skills/cratis-screenplay-event-modeling/references/nine-steps.md +1 -1
- package/package/corpus/skills/cratis-screenplay-legacy-extraction/SKILL.md +2 -2
- package/package/corpus/skills/cratis-screenplay-modeling-lifecycle/references/vocabulary-map.md +2 -2
- package/package/corpus/skills/cratis-screenplay-render-and-gap-fill/SKILL.md +6 -6
- package/package/corpus/skills/cratis-screenplay-render-and-gap-fill/references/drift-and-ledger.md +1 -1
- 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/references/renderability-gate.md +1 -1
- package/package/corpus/skills/cratis-screenplay-scenario-coverage/references/invoicing-dues-design.md +1 -1
- package/package/corpus/skills/cratis-screenplay-slice-design/SKILL.md +1 -1
- package/package/corpus/skills/cratis-screenplay-slice-design/references/rule-layers.md +2 -2
- package/package/corpus/skills/cratis-screenplay-slice-design/references/worked-example.md +1 -1
- package/package/corpus/skills/cratis-screenplay-streams-and-consistency/SKILL.md +3 -3
- package/package/corpus/skills/cratis-screenplay-streams-and-consistency/references/chronicle-boundaries.md +2 -2
- package/package/corpus/skills/cratis-screenplay-streams-and-consistency/references/consistency-and-concurrency.md +2 -2
- package/package/corpus/skills/cratis-screenplay-toolchain/references/renderable-subset.md +3 -3
- package/package/corpus/skills/cratis-stage-rendering-and-sandbox/SKILL.md +4 -4
- package/package/corpus/skills/cratis-stage-rendering-and-sandbox/references/admission.md +1 -1
- package/package/corpus/skills/cratis-stage-rendering-and-sandbox/verification.json +1 -1
- package/package.json +1 -1
package/package/corpus/skills/cratis-chronicle-reactor/references/slice-delivery-checklist.md
CHANGED
|
@@ -56,7 +56,7 @@ give the reactor `[ExecuteCommandsAsSystem]` naming that role.
|
|
|
56
56
|
|---|---|
|
|
57
57
|
| One trigger event, one command | One handler whose first parameter is the trigger event, returning the command built from the trigger's fields. Add `[ExecuteCommandsAsSystem]` only when the command is gated, and `[OnceOnly]` |
|
|
58
58
|
| One trigger event, several commands | Return the commands as a collection: Arc runs them in order, with no transaction across them, and a retry can repeat them (see "Invoking a command from a reactor") |
|
|
59
|
-
| One trigger, events and commands | Return one stable collection mixing registered events and commands (Arc 22.72.0 or later): the events are appended first as one batch, then the commands run in order, with no transaction across them. Add `[OnceOnly]` where a replay must not repeat it. The Stage
|
|
59
|
+
| One trigger, events and commands | Return one stable collection mixing registered events and commands (Arc 22.72.0 or later): the events are appended first as one batch, then the commands run in order, with no transaction across them. Add `[OnceOnly]` where a replay must not repeat it. The Stage scaffold pins an older Arc (see `cratis-stage-rendering-and-sandbox` `references/rendered-application.md`), so this needs a proven dependency override; never split the modeled reaction |
|
|
60
60
|
| One trigger event, events produced directly | Return the event or events; `[OnceOnly]` applies (`CHR0022`) |
|
|
61
61
|
| A condition narrows the trigger | Realize exactly the stated `where`. Show it with one specification where it skips and one for the neighboring case where it acts |
|
|
62
62
|
| A fact on another event source | `EventForEventSourceId` with the stated target id |
|
|
@@ -13,7 +13,7 @@ automation or translation is hand-written delivery with the model as its contrac
|
|
|
13
13
|
A reaction that both `produces` events and `invokes` commands stays one modeled reaction. Hand-write one
|
|
14
14
|
reactor that returns the events and the commands: Arc 22.72.0 and later append the events first as one
|
|
15
15
|
batch, then run the commands in order, with no transaction across them (a retry can repeat both, so keep
|
|
16
|
-
both repeatable); the Stage scaffold pins
|
|
16
|
+
both repeatable); the Arc the Stage scaffold pins (see `cratis-stage-rendering-and-sandbox` `references/rendered-application.md`) accepts a collection in a command handler only when every element is a command, so a rendered app needs a proven dependency override to Arc 22.72.0 or later. Never split the reaction to dodge `STAGE-ESM-037`. A `Customizations/` file never makes a
|
|
17
17
|
rejected model renderable, and never claim a whole-application V5 from a subset. Choose the route
|
|
18
18
|
with `cratis-screenplay-render-and-gap-fill`.
|
|
19
19
|
|
|
@@ -40,7 +40,7 @@ decides, not the slice type:
|
|
|
40
40
|
refused it and falsely reported PLAY0285 (`references/versions.md`).
|
|
41
41
|
- **Stage 4.73.1** admits ESM v1-v10 by version but renders no `Automation`, `Translate`, reaction or
|
|
42
42
|
capture (`STAGE-ESM-024`; `-037` for a reaction that produces and invokes, which Arc 22.72.0+
|
|
43
|
-
runs as one reactor; scaffold
|
|
43
|
+
runs as one reactor; scaffold Arc needs override). The automation is gap-fill; the `.play` slice and its specifications
|
|
44
44
|
are the contract: `cratis-screenplay-render-and-gap-fill`.
|
|
45
45
|
|
|
46
46
|
Model them whenever the `.play` file is the deliverable, and say which tool bound
|
|
@@ -71,7 +71,7 @@ Reverse generation is not the C# provider mapping above. Source authority: Arc
|
|
|
71
71
|
secrets), `Source/DotNET/Screenplay/Emission/Concepts/ConceptSyntaxBuilder.cs`
|
|
72
72
|
and `Source/DotNET/Screenplay/Analysis/Types/PersonalDataMarkings.cs`.
|
|
73
73
|
SP0058 to SP0060 exist from Arc.Screenplay 22.61.0 (or earlier); SP0061 to SP0063 first ship in 22.70.0 (read at
|
|
74
|
-
v22.70.0 and v22.72.0), so the full set described here needs 22.70.0 or later. CLI 3.53.1 bundles
|
|
74
|
+
v22.70.0 and v22.72.0), so the full set described here needs 22.70.0 or later. CLI 3.53.1 bundles an Arc.Screenplay older than that (its version is in `cratis-screenplay-toolchain` `references/versions.md`), which has
|
|
75
75
|
none of SP0061 to SP0063, so the CLI shows none of them; check the generator package actually loaded.
|
|
76
76
|
|
|
77
77
|
- Both `[Encrypted]` and `[NotAudited]` must be on the concept to recover
|
|
@@ -113,7 +113,7 @@ is the fallback, and neither names the other's verdict. Versions and commands:
|
|
|
113
113
|
slices; reactions, captures, Automation and Translate, and the v7+ constructs in Stage's
|
|
114
114
|
admission table refuse with their own `STAGE-ESM-*` code, so those scopes are gap-fill with
|
|
115
115
|
the model as the contract. A reaction that produces events and invokes commands is refused
|
|
116
|
-
(`STAGE-ESM-037`) although Arc 22.72.0 and later can run it (the Stage scaffold
|
|
116
|
+
(`STAGE-ESM-037`) although Arc 22.72.0 and later can run it (the Arc the Stage scaffold pins needs a proven override): hand-write it as one reactor, never split the modeled reaction.
|
|
117
117
|
|
|
118
118
|
## Parsed is not runnable
|
|
119
119
|
|
|
@@ -202,7 +202,7 @@ system state?"* If no, it is co-production — one `StateChange` slice with seve
|
|
|
202
202
|
Stage 4.73.1 renders none, so the automation is gap-fill there (versions:
|
|
203
203
|
`cratis-screenplay-toolchain`). A reaction that `produces` and `invokes` stays one reaction: Stage
|
|
204
204
|
refuses it (`STAGE-ESM-037`) but Arc 22.72.0 and later run it as one reactor (events first, then
|
|
205
|
-
commands; no cross-effect transaction; the Stage scaffold
|
|
205
|
+
commands; no cross-effect transaction; the Arc the Stage scaffold pins needs a proven override), so gap-fill it whole, never split it. When the automation decides from a view, declare it under
|
|
206
206
|
the trigger with `reads` (see `cratis-screenplay-captures-and-reactions`).
|
|
207
207
|
|
|
208
208
|
The example below is a complete document: a Monday-morning clock occurrence invokes a command
|
|
@@ -37,8 +37,8 @@ then hands off to review (P5) and acceptance (P6).
|
|
|
37
37
|
## Verified product sources
|
|
38
38
|
|
|
39
39
|
Current pins: `cratis-screenplay-toolchain` `references/versions.md`. The sources below were read
|
|
40
|
-
at the versions named in each row (CLI 3.53.1 bundles
|
|
41
|
-
2.0.0 and Arc.Screenplay
|
|
40
|
+
at the versions named in each row (CLI 3.53.1 bundles Prologue
|
|
41
|
+
2.0.0; the Screenplay, Stage and Arc.Screenplay it bundles are in that pin set, and are not the latest releases). Checked at these sources:
|
|
42
42
|
|
|
43
43
|
| Fact used here | Source |
|
|
44
44
|
| --- | --- |
|
package/package/corpus/skills/cratis-screenplay-modeling-lifecycle/references/vocabulary-map.md
CHANGED
|
@@ -21,7 +21,7 @@ speaks in them; never model board mechanics (lanes, node ids, positions).
|
|
|
21
21
|
| Storyline (ordered beats) | a **family** of specifications sharing example data, each one transition (no storyline syntax at Screenplay 4.139.0) | several spec classes | specifications |
|
|
22
22
|
| Field validation | concept `validate` (every use) / command `validate`, `require` | `ConceptValidator<T>` / `CommandValidator<T>` | command validation |
|
|
23
23
|
| Role permission ("Cannot") | `policy` + `authorize` + `then denied` spec; ownership via `claim ... matches subject` | `[Authorize(Policy)]`, generated policies | authorization |
|
|
24
|
-
| Precondition on stream state | `reads` + `require` as stated intent, not enforced at Screenplay 4.139.0 (target: Arc `[ProtectedDecision]` + `DecisionRead<T>`, or Chronicle DCB; APIs available to gap-fill in Stage 4.73.1
|
|
24
|
+
| Precondition on stream state | `reads` + `require` as stated intent, not enforced at Screenplay 4.139.0 (target: Arc `[ProtectedDecision]` + `DecisionRead<T>`, or Chronicle DCB; APIs available to gap-fill in the Arc and Chronicle the Stage 4.73.1 scaffold pins, not emitted protection) | decision over a guarded read | command validation |
|
|
25
25
|
| Generated id (`derived:uuid4()`) | `generated` (authorable, not executable) | id supplied before `Handle()` | commands |
|
|
26
26
|
| External system / outbound call | `Translate` slice (inbound); `system`/`operation` (authorable, not executable) or Automation (outbound) | `ICommandOperation` / reactor | operations, reactors |
|
|
27
27
|
| HTML mockup | `screen` Level 1 + board (`visualize-model`) | default Scene composition | ui composition |
|
|
@@ -44,7 +44,7 @@ Screenplay meaning, and when you meet the older usage, translate it and say so.
|
|
|
44
44
|
- Chronicle **reactor**: C# observer, usually for side effects; it does not by itself define
|
|
45
45
|
business decisions. A Screenplay reaction is authorable and bindable, but Stage 4.73.1 renders no Automation or
|
|
46
46
|
Translate slice: the reactor and command are gap-fill code. A reaction that both produces events and invokes commands is
|
|
47
|
-
refused by Stage (`STAGE-ESM-037`); Arc 22.72.0 and later run one reactor returning events and commands (the Stage scaffold
|
|
47
|
+
refused by Stage (`STAGE-ESM-037`); Arc 22.72.0 and later run one reactor returning events and commands (the Arc the Stage scaffold pins needs a proven override), so keep the reaction whole.
|
|
48
48
|
|
|
49
49
|
## Scenario vs specification
|
|
50
50
|
"Scenario" is the Event Modeling example and the scenario *types* `cratis-screenplay-scenario-coverage` uses for
|
|
@@ -23,11 +23,11 @@ rule is in `cratis-screenplay-modeling-lifecycle` ("Decide the level first"); it
|
|
|
23
23
|
## Verified product sources
|
|
24
24
|
|
|
25
25
|
Version pins live once in `cratis-screenplay-toolchain` `references/versions.md`; read it before
|
|
26
|
-
selecting the compiler and renderer for delivery
|
|
27
|
-
|
|
26
|
+
selecting the compiler and renderer for delivery: the CLI bundles its own Screenplay and Stage, older
|
|
27
|
+
than the standalone compiler. Render options (`--scope`,
|
|
28
28
|
`--check`, `--package-set`) and exit codes were read at cli `v3.53.1` `Documentation/reference/screenplay.md`
|
|
29
|
-
and `cratis render --help`; admission at Stage `v4.73.1`. Stage's scaffold pins Arc
|
|
30
|
-
Chronicle
|
|
29
|
+
and `cratis render --help`; admission at Stage `v4.73.1`. Stage's scaffold pins Arc and
|
|
30
|
+
Chronicle releases, which are not the latest (`cratis-stage-rendering-and-sandbox`
|
|
31
31
|
`references/rendered-application.md`). Source reading is not a new render run.
|
|
32
32
|
|
|
33
33
|
Runs: the worked example (`references/worked-example.md`) was probed with cratis 3.53.1 (observed; the
|
|
@@ -90,7 +90,7 @@ Stage (`STAGE-ESM-037`, Stage#207) although Arc 22.72.0 and later run one reacto
|
|
|
90
90
|
and commands (events appended first as one batch, then commands in order, no cross-effect
|
|
91
91
|
transaction; a retry can repeat the events, so use `[OnceOnly]`/idempotent handling per
|
|
92
92
|
`cratis-chronicle-reactor`). Keep the modeled reaction whole and gap-fill it as that one reactor; never
|
|
93
|
-
split it or drop an effect to get a render. The scaffold pins Arc
|
|
93
|
+
split it or drop an effect to get a render. The scaffold pins an older Arc; whether a newer Arc
|
|
94
94
|
override in `Customizations/Dependencies.props` restores next to it is unverified, so prove it with a restore and build.
|
|
95
95
|
|
|
96
96
|
Two rules hold in every case: a customization never makes a rejected model renderable, and
|
|
@@ -153,7 +153,7 @@ Adapters and non-renderable scope follow the contract rules of `cratis-applicati
|
|
|
153
153
|
- One ledger scope per `slice-implementer` brief; the brief carries addresses and paths, not contents.
|
|
154
154
|
- Model-enforced rules realized in code (state-dependent rules) need a protected read or
|
|
155
155
|
concurrency scope; never claim them from prose. Stage 4.73.1 rendered apps scaffold
|
|
156
|
-
Arc
|
|
156
|
+
the Arc/Chronicle set in `cratis-stage-rendering-and-sandbox` `references/rendered-application.md`; API availability alone is not verified enforcement.
|
|
157
157
|
- Adapters that call outside systems follow `cratis-engineering-effect-boundaries`; slice
|
|
158
158
|
specifications follow `cratis-application-slice-specifications`.
|
|
159
159
|
- Realization notes are the explicit realization requirements stated in a slice `description` or `documentation`
|
package/package/corpus/skills/cratis-screenplay-render-and-gap-fill/references/drift-and-ledger.md
CHANGED
|
@@ -34,7 +34,7 @@ Compare in this order:
|
|
|
34
34
|
never V4 or V5; it needs the same generation options (`--domain`, `--feature-root`, `--module`,
|
|
35
35
|
`--skip-segments`, `--modules-from-namespace-roots`) that reproduce the authored placement, or
|
|
36
36
|
everything looks missing. MSBuild evaluates the project (use a trusted clone) and the bundle's
|
|
37
|
-
`Cratis.Arc.Screenplay` is
|
|
37
|
+
`Cratis.Arc.Screenplay` is the version in `cratis-screenplay-toolchain` `references/versions.md`, so recovery behaves like that adapter. It does not replace
|
|
38
38
|
`cratis-application-slice-conformance`, which reconciles specifications, rules and behavior.
|
|
39
39
|
Whether it is meaningful on a Stage-rendered application is unverified.
|
|
40
40
|
|
package/package/corpus/skills/cratis-screenplay-render-and-gap-fill/references/gap-fill-handoff.md
CHANGED
|
@@ -69,7 +69,7 @@ ambiguous addresses; contracts are never inferred from names.
|
|
|
69
69
|
A rule that exists only in a description, or a state-dependent rule the model marks as not
|
|
70
70
|
enforced, is unenforced in generated scope. List it in the ledger as a target requirement. In
|
|
71
71
|
hand-written code it needs an atomic enforcement point: a protected read or a concurrency scope
|
|
72
|
-
(Stage 4.73.1 rendered apps scaffold Arc
|
|
72
|
+
(Stage 4.73.1 rendered apps scaffold the Arc/Chronicle set in `cratis-stage-rendering-and-sandbox` `references/rendered-application.md`: protected-read APIs
|
|
73
73
|
are available to gap-fill, with projection/key admission and active enrollment), or a Chronicle constraint. A stale view or
|
|
74
74
|
a caller-supplied status is not enforcement.
|
|
75
75
|
|
|
@@ -93,11 +93,11 @@ captures-and-reactions `references/invocation-identity.md`.
|
|
|
93
93
|
|
|
94
94
|
A reaction that both produces events and invokes commands keeps its single modeled form
|
|
95
95
|
(`STAGE-ESM-037` is Stage's refusal, not a model defect). Hand-write one reactor returning the events
|
|
96
|
-
and the commands: on Arc 22.72.0 or later (the Stage
|
|
96
|
+
and the commands: on Arc 22.72.0 or later (the Arc the Stage scaffold pins accepts a collection in a command handler only when every element is a command, so a rendered app needs a proven dependency override) the runtime appends the events first as one batch, then
|
|
97
97
|
runs the commands in order, with no transaction across the two effects; a failing command stops the
|
|
98
98
|
later ones but keeps the committed events, and a retry can append the events again, so make the
|
|
99
99
|
handler idempotent (`[OnceOnly]` and the failure behavior in `cratis-chronicle-reactor`). Return a
|
|
100
|
-
stable array or list. The Stage scaffold pins Arc
|
|
100
|
+
stable array or list. The Stage scaffold pins an older Arc, so raise the version through
|
|
101
101
|
`Customizations/Dependencies.props` only after a restore and build proves it. Never split the
|
|
102
102
|
reaction or drop an effect to dodge rendering.
|
|
103
103
|
|
package/package/corpus/skills/cratis-screenplay-render-and-gap-fill/references/renderability-gate.md
CHANGED
|
@@ -30,7 +30,7 @@ ESM). Only the probe answers renderability. `PLAY0270` entries are information,
|
|
|
30
30
|
| Class | Meaning | Typical examples (each verified in `admission.md`) | Action |
|
|
31
31
|
| --- | --- | --- | --- |
|
|
32
32
|
| **Model fix (in mode)** | the model is in, or the user chose, renderable mode and breaks its own subset in a way that has a renderable equivalent with the same meaning | a `produces` whose `for` is not the command identifier; one `StateChange` slice with two commands (`STAGE-ESM-004`); two projections for one read model (`-007`); a policy Stage cannot express portably (`-015`; role-only and opaque pure policies render at 4.73.1) | edit request to the modeler session with address, change and rationale |
|
|
33
|
-
| **Capability gap** | the intended meaning needs a construct Stage does not render yet | a snapshot list query (`-010`; observable lists and keyed or unkeyed lists bind and observable lists render), and `filter`, `scoped to`, `performer` queries (`PLAY0268`); Automation and Translate slices (`-001`/`-024`, Stage#79); reactions, clocks, captures and triggers (`-024`); a reaction that both produces and invokes (`-037`: keep it whole and hand-write one reactor on Arc 22.72.0 or later (the scaffold pins
|
|
33
|
+
| **Capability gap** | the intended meaning needs a construct Stage does not render yet | a snapshot list query (`-010`; observable lists and keyed or unkeyed lists bind and observable lists render), and `filter`, `scoped to`, `performer` queries (`PLAY0268`); Automation and Translate slices (`-001`/`-024`, Stage#79); reactions, clocks, captures and triggers (`-024`); a reaction that both produces and invokes (`-037`: keep it whole and hand-write one reactor on Arc 22.72.0 or later (the Arc the scaffold pins needs a proven override), never split it; Stage#207); generated values and responses (`-028`/`-029`, Stage#175); `then no readmodel` (`-027`); evolved events (`STAGE-ESM-026`); conditional `produces when` (`-006`); `reads` (`PLAY0271`); code validation (`-005`); compliance attributes (`PLAY0268` "require portable data-subject semantics"); a command `handler` (`PLAY0268`) | keep the model; ledger entry; options a to c in `SKILL.md`; link the Stage issue |
|
|
34
34
|
| **Tool skew** | the bundled compiler disagrees with documented semantics | the false `PLAY0285` on reaction cascades from a cratis before 3.28.2 bundle (cli#242); codes the standalone compiler does not raise | record in the session state and the ledger; never "fix" a correct model |
|
|
35
35
|
| **Environment** | not the model | restore failures, missing SDK, a destination that is not writable | fix the environment or report blocked |
|
|
36
36
|
|
|
@@ -14,7 +14,7 @@ replaced by prose. The runnable counterpart, which holds no stored-state rule, i
|
|
|
14
14
|
`invoicing-dues-example.md`; `scenario-examples.md` copies `ReversingAReceivedPayment` from here.
|
|
15
15
|
|
|
16
16
|
The excerpt's Stage API-availability comment describes the historical Stage 4.24.x
|
|
17
|
-
scaffold. Stage 4.73.1 pins Arc
|
|
17
|
+
scaffold. Stage 4.73.1's scaffold pins an Arc/Chronicle set (see the Stage skill's `references/rendered-application.md`): protected-read APIs are
|
|
18
18
|
available to gap-fill (the "not in a Stage-rendered application" comment in the source is
|
|
19
19
|
superseded), not emitted protection or `.play` rule admission. The
|
|
20
20
|
original compiled source is retained unchanged.
|
|
@@ -81,7 +81,7 @@ report and slice `documentation`, and continue.
|
|
|
81
81
|
over stored state is written as `reads <View>` + `require ... message "..."` and marked
|
|
82
82
|
**NOT enforced in the model today** in the slice `description`, with its target named (Arc
|
|
83
83
|
`[ProtectedDecision]` + `DecisionRead<T>` on Arc 22.39.0+ (available to gap-fill
|
|
84
|
-
code with Stage 4.73.1
|
|
84
|
+
code with the Arc and Chronicle the Stage 4.73.1 scaffold pins); Chronicle DCB; or a constraint). Never copy state
|
|
85
85
|
into the command as input or hide a rule in `handler` / hint prose; descriptions reach code
|
|
86
86
|
only as XML comments (Stage#178). Fill the **refusal inventory**: success, each distinct refusal with
|
|
87
87
|
layer and message, and the denied persona.
|
|
@@ -15,7 +15,7 @@ code only as XML doc comments (Stage#178): a rule that exists only in prose is u
|
|
|
15
15
|
|
|
16
16
|
An unguarded materialized read is unsafe for a protected decision; a guarded read is the
|
|
17
17
|
supported route. Availability: `[ProtectedDecision]` and `DecisionRead<T>` exist in
|
|
18
|
-
Stage 4.73.1's
|
|
18
|
+
the Arc/Chronicle package set Stage 4.73.1 scaffolds (see the Stage skill's `references/rendered-application.md`), but Stage does not emit
|
|
19
19
|
protected decisions. Gap-fill must use an admitted projection/key shape and active
|
|
20
20
|
unit-of-work enrollment; do not edit managed dependencies. Keep the `.play` rule
|
|
21
21
|
NOT enforced until its target enforcement is separately verified. Forbidden: caller-supplied copies of state in `require`, boolean attestation
|
|
@@ -33,7 +33,7 @@ second caller with another claim value.
|
|
|
33
33
|
|
|
34
34
|
Command property values are, by default, recorded in the causation chain of the events they
|
|
35
35
|
produce, so treat them as permanent. Newer Chronicle versions can omit causation properties
|
|
36
|
-
(`CausationPropertyRetention.Omit`, Chronicle v19.32.0); Stage
|
|
36
|
+
(`CausationPropertyRetention.Omit`, Chronicle v19.32.0); Stage-rendered apps pin the Chronicle release listed in the Stage skill's `references/rendered-application.md` (not the latest).
|
|
37
37
|
Verify the actual auditing and retention configuration before relying on omission, and never
|
|
38
38
|
audit secrets. Classify personal values as bare `pii` and operational secrets as
|
|
39
39
|
`secret` on their concepts, never the identifier concept. Use a surrogate identity
|
|
@@ -19,7 +19,7 @@ and record lineage reasoning in fenced Markdown `documentation` (`field-lineage.
|
|
|
19
19
|
The historical source below stays unchanged; it is not the current placement recipe.
|
|
20
20
|
|
|
21
21
|
The excerpt's Stage availability note is historical (Stage 4.24.x, Arc 22.25.0).
|
|
22
|
-
Stage 4.73.1 pins Arc
|
|
22
|
+
Stage 4.73.1's scaffold pins an Arc/Chronicle set (see the Stage skill's `references/rendered-application.md`), so protected-read APIs are available
|
|
23
23
|
to gap-fill (the compiled description below saying they are "not available in Stage-rendered apps" is superseded); this neither admits these `.play` rules nor proves target protection.
|
|
24
24
|
The original compiled excerpt is retained unchanged.
|
|
25
25
|
|
|
@@ -28,8 +28,8 @@ Require target evidence that the check ran: a concurrent first-append scenario a
|
|
|
28
28
|
Chronicle, asserting one append wins, one is rejected, and `IAppendResult.ConcurrencyCheckPerformed`
|
|
29
29
|
is `true` (a skipped check and a passing one look identical otherwise; a current client against
|
|
30
30
|
an older kernel always reads `false`). This was source- and documentation-inspected, not
|
|
31
|
-
concurrency-tested here. The Stage
|
|
32
|
-
|
|
31
|
+
concurrency-tested here. The Stage scaffold pins Chronicle client/kernel and Arc releases (see `cratis-stage-rendering-and-sandbox` `references/rendered-application.md`;
|
|
32
|
+
the CLI bundle's Chronicle is in `cratis-screenplay-toolchain` `references/versions.md`); the APIs exist for gap-fill, not as automatically rendered enforcement.
|
|
33
33
|
|
|
34
34
|
## Verified product sources
|
|
35
35
|
|
|
@@ -38,7 +38,7 @@ and Arc 22.68.0 (the CLI bundle's Chronicle is 19.32.0); the APIs exist for gap-
|
|
|
38
38
|
| Screenplay | v4.68.0 (`79801bf`) | ESM v7 generated values (`generated identifier`, decision 0026) and decision 0025's numbering; the diagnostics below were read at v4.66.0 (`c89198b`): `identifier`, `for`, constraints, generations, `id` pins, diagnostics PLAY0019/0135/0268/0271/0273/0391-0393/0446-0449/0469/0471 |
|
|
39
39
|
| Chronicle | v19.50.0 (read; first read at v19.32.0 `f17a2ff`) | CHR0012, CHR0034; open defects #3744, #4123, #4131 (still open) |
|
|
40
40
|
| Arc | v22.72.0 | `[ProtectedDecision]` and `DecisionRead<T>` (since v22.39.0) |
|
|
41
|
-
| Stage | v4.73.1 | rendered apps pin Arc
|
|
41
|
+
| Stage | v4.73.1 | rendered apps pin the Arc and Chronicle client/kernel listed in the Stage skill's `references/rendered-application.md`; protected-read APIs available to gap-fill. Historical 4.24.2 admission probe: ESM v4, evolved events refused with `STAGE-ESM-026` |
|
|
42
42
|
|
|
43
43
|
Full pin table: `references/versions.md` in `cratis-screenplay-toolchain`. Re-check the three
|
|
44
44
|
Chronicle issues before relying on a constraint in a later release.
|
|
@@ -10,8 +10,8 @@ event-source id) are present. Three runtime defects are **open at v19.50.0**: #3
|
|
|
10
10
|
InMemory providers do not settle unique claims), #4123 (constraint index updates run after commit
|
|
11
11
|
and fail silently) and #4131 (composite unique constraints collide when a component contains the
|
|
12
12
|
separator). Arc **v22.72.0** has `[ProtectedDecision]` (since v22.39.0, needs Chronicle 19.23 or
|
|
13
|
-
later); Stage
|
|
14
|
-
|
|
13
|
+
later); Stage-rendered apps pin an Arc and Chronicle client/kernel release
|
|
14
|
+
(see the Stage skill's `references/rendered-application.md`) that include them, so the APIs are available to gap-fill, not automatically emitted or
|
|
15
15
|
protected (see `consistency-and-concurrency.md` section 3). Re-check the issues before relying on a
|
|
16
16
|
constraint in a new release.
|
|
17
17
|
A concurrency scope's first append is unchecked by default at v19.50.0 (the default is planned to become checked in the next major, `Documentation/events/concurrency.mdx`); see
|
|
@@ -109,8 +109,8 @@ example a course capacity computed from enrolment streams, needs option a or b:
|
|
|
109
109
|
deciding fact on the source that owns the state, or give each scarce item its own identity. Sources: Arc `v22.72.0:Documentation/backend/csharp/chronicle/read-models/injecting-into-commands.md` (limits unchanged since v22.50.5);
|
|
110
110
|
`chronicle-boundaries.md`.
|
|
111
111
|
|
|
112
|
-
**Availability in Stage-rendered applications.** Stage
|
|
113
|
-
|
|
112
|
+
**Availability in Stage-rendered applications.** The Stage scaffold pins Arc and Chronicle client/kernel
|
|
113
|
+
releases (not the latest). `[ProtectedDecision]` and `DecisionRead<T>` /
|
|
114
114
|
`IDecisionReads` exist in that package set; source checks are in
|
|
115
115
|
`cratis-stage-rendering-and-sandbox` `references/rendered-application.md`.
|
|
116
116
|
This does not mean Stage emits protected decisions. Gap-fill must opt into the
|
|
@@ -45,7 +45,7 @@ version; each construct it does not render refuses with its own code before any
|
|
|
45
45
|
|
|
46
46
|
| Area | Renders at 4.73.1 | Refused (code) |
|
|
47
47
|
| --- | --- | --- |
|
|
48
|
-
| Slice kinds | `StateChange`, `StateView` | `Automation`, `Translate`, every reaction, capture, application trigger and clock specification (`STAGE-ESM-001`/`-024`); a reaction that both produces and invokes (`-037`, Stage#207; Arc 22.72.0+ can run it, and the scaffold
|
|
48
|
+
| Slice kinds | `StateChange`, `StateView` | `Automation`, `Translate`, every reaction, capture, application trigger and clock specification (`STAGE-ESM-001`/`-024`); a reaction that both produces and invokes (`-037`, Stage#207; Arc 22.72.0+ can run it, and the Arc the scaffold pins needs a proven override; hand-write one reactor, never split the reaction) |
|
|
49
49
|
| Queries | optional keyed snapshot lookups; observable collections, keyed or unkeyed (since 4.49.0) | a snapshot list: `STAGE-ESM-010`; `filter`, `scoped to`, `performer`, composite `by`: `PLAY0268` at binding |
|
|
50
50
|
| Authorization | role-only, authenticated, opaque pure policies, claim conditions with Uuid, Date, DateTime or text targets (numeric and Boolean claim matches render as always false; Stage 4.73.1 `IsSupportedClaimPath`), `not`/and/or; roles read through the identity's `RoleClaimType` | role-claim URIs, nested opaque policies, unresolved or non-portable policies, no single identifier, opaque-policy subjects that are not text, Uuid, Date or DateTime (`STAGE-ESM-015`; Stage 4.73.1 `IsTextualSubject`, a restriction separate from declarative claim targets) |
|
|
51
51
|
| Event sources, streams, routes (ESM v8) | rendered, with routed specifications | reserved stored names, unformattable routed fixtures, unsupported routed replay (`STAGE-ESM-030`) |
|
|
@@ -131,8 +131,8 @@ legacy ids or drop protected ids into routing to fit a renderer (PLAY0515).
|
|
|
131
131
|
`Customizations/styles.css`. The planner never reads it, and it never binds a modeled
|
|
132
132
|
reaction or capture. A customization never makes a rejected model renderable.
|
|
133
133
|
- `cratis render` does **not** build, test or run the application.
|
|
134
|
-
- Stage 4.73.1's scaffold pins .NET 10
|
|
135
|
-
and emits a `.frontend/` React/Vite app (Components
|
|
134
|
+
- Stage 4.73.1's scaffold pins .NET 10 and Arc and Chronicle client/kernel releases
|
|
135
|
+
and emits a `.frontend/` React/Vite app (Components and Scene releases pinned too); these are not the latest
|
|
136
136
|
releases (`cratis-stage-rendering-and-sandbox` `references/rendered-application.md`).
|
|
137
137
|
`CratisEmbeddedScreenplayEnabled=false`; `Directory.Packages.props` is managed,
|
|
138
138
|
never edit it. `[ProtectedDecision]` / `DecisionRead<T>` are available to gap-fill,
|
|
@@ -44,9 +44,9 @@ Current pins and the tool split: `cratis-screenplay-toolchain/references/version
|
|
|
44
44
|
were read at Stage `v4.73.1` (`Source/Rendering.Cratis/**`, `Documentation/guides/build-renderer-target.md`,
|
|
45
45
|
`Documentation/reference/render-plans.md`, `Documentation/docker/**`) and cli `v3.53.1`
|
|
46
46
|
(`Documentation/reference/screenplay.md`, `Source/Cli/Commands/Render/**`), not by a render run
|
|
47
|
-
unless a line says *observed*. CLI 3.53.1 bundles Screenplay
|
|
48
|
-
binder is behind the standalone
|
|
49
|
-
Fundamentals
|
|
47
|
+
unless a line says *observed*. CLI 3.53.1 bundles a Screenplay and Stage listed in `cratis-screenplay-toolchain` `references/versions.md`, so its
|
|
48
|
+
binder is behind the standalone compiler. Stage's scaffold pins Arc, Chronicle, Components, Scene and
|
|
49
|
+
Fundamentals releases (listed in the rendered application reference). These are **not** the latest releases; do not bump them in managed files
|
|
50
50
|
([rendered application](references/rendered-application.md)).
|
|
51
51
|
|
|
52
52
|
Historical executed baselines (history, not current claims): Stage `v4.24.2` and cli
|
|
@@ -134,7 +134,7 @@ receipt.
|
|
|
134
134
|
|
|
135
135
|
Facts that surprise:
|
|
136
136
|
|
|
137
|
-
- **Binding uses the CLI's bundled Screenplay** (
|
|
137
|
+
- **Binding uses the CLI's bundled Screenplay** (the version listed in `cratis-screenplay-toolchain` `references/versions.md`; the standalone tool is
|
|
138
138
|
newer). A model that binds is not necessarily renderable: Stage 4.73.1 admits ESM v1 to v10 by
|
|
139
139
|
version, then refuses each construct it does not render with its own code (below). v11 or newer is
|
|
140
140
|
`CLI-RENDER-004`; direct Stage reports `STAGE-ESM-016`.
|
|
@@ -89,7 +89,7 @@ model owner's decision.
|
|
|
89
89
|
| `STAGE-ESM-031` | Whole-number literal outside the C# `int` range below ESM v8 (v8 and later render `long`) | Raise the model to v8 constructs or gap-fill |
|
|
90
90
|
| `STAGE-ESM-032`, `-033` | Public events and event-target projections or reducers (ESM v9); foreign event origins and event-source captures | Gap-fill |
|
|
91
91
|
| `STAGE-ESM-034`, `-035`, `-036` | Reaction `runsAs` (ESM v10), reaction observer `from` filters, per-production route overrides (reducer `from` filters render) | Gap-fill |
|
|
92
|
-
| `STAGE-ESM-037` | A reaction trigger that both produces events and invokes commands (ESM v6). A Stage refusal (Stage#207), not an Arc or language limit: Arc 22.72.0 and later run one reactor that returns events and commands (events appended first as one batch, then commands in order, no cross-effect transaction) | **Do not split the modeled reaction or drop `produces`/`invokes`.** Keep it and gap-fill it as one reactor on Arc 22.72.0 or later (the scaffold pins
|
|
92
|
+
| `STAGE-ESM-037` | A reaction trigger that both produces events and invokes commands (ESM v6). A Stage refusal (Stage#207), not an Arc or language limit: Arc 22.72.0 and later run one reactor that returns events and commands (events appended first as one batch, then commands in order, no cross-effect transaction) | **Do not split the modeled reaction or drop `produces`/`invokes`.** Keep it and gap-fill it as one reactor on Arc 22.72.0 or later (the Arc the scaffold pins has a command handler that accepts a collection only when every element is a command; a rendered app needs a proven dependency override; see `rendered-application.md` for the pinned Arc) |
|
|
93
93
|
| `STAGE-ESM-023` | Information: transition bodies analysed | none |
|
|
94
94
|
| `STAGE-CRATIS-001` to `-005` | Profile or `scene.json` not the package-owned shape; unrecognized or missing scaffold input; artifact path collision; a modeled module or feature that would render into the reserved `Customizations/` | Rename the module or feature (005) |
|
|
95
95
|
| `STAGE-AUTH-001` | Authorization cannot be rendered faithfully | As `STAGE-ESM-015` |
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
{ "kind": "skill-contains", "value": "means stop and reconcile" },
|
|
14
14
|
{ "kind": "skill-contains", "value": "STAGE-ESM-016" },
|
|
15
15
|
{ "kind": "skill-contains", "value": "**Render never builds, tests or runs**" },
|
|
16
|
-
{ "kind": "skill-contains", "value": "Arc
|
|
16
|
+
{ "kind": "skill-contains", "value": "scaffold pins Arc, Chronicle, Components, Scene and" },
|
|
17
17
|
{ "kind": "skill-contains", "value": "`[ProtectedDecision]`" },
|
|
18
18
|
{ "kind": "skill-contains", "value": "`Customizations/`" },
|
|
19
19
|
{ "kind": "skill-contains", "value": "`Stage__Runtime__Engine=semantic`" },
|