@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.
Files changed (24) hide show
  1. package/package/corpus/skills/cratis-chronicle-reactor/references/slice-delivery-checklist.md +1 -1
  2. package/package/corpus/skills/cratis-screenplay-automations-and-translations/references/realization-and-gap-fill.md +1 -1
  3. package/package/corpus/skills/cratis-screenplay-captures-and-reactions/SKILL.md +1 -1
  4. package/package/corpus/skills/cratis-screenplay-command-surface/references/compliance.md +1 -1
  5. package/package/corpus/skills/cratis-screenplay-event-modeling/SKILL.md +1 -1
  6. package/package/corpus/skills/cratis-screenplay-event-modeling/references/nine-steps.md +1 -1
  7. package/package/corpus/skills/cratis-screenplay-legacy-extraction/SKILL.md +2 -2
  8. package/package/corpus/skills/cratis-screenplay-modeling-lifecycle/references/vocabulary-map.md +2 -2
  9. package/package/corpus/skills/cratis-screenplay-render-and-gap-fill/SKILL.md +6 -6
  10. package/package/corpus/skills/cratis-screenplay-render-and-gap-fill/references/drift-and-ledger.md +1 -1
  11. package/package/corpus/skills/cratis-screenplay-render-and-gap-fill/references/gap-fill-handoff.md +3 -3
  12. package/package/corpus/skills/cratis-screenplay-render-and-gap-fill/references/renderability-gate.md +1 -1
  13. package/package/corpus/skills/cratis-screenplay-scenario-coverage/references/invoicing-dues-design.md +1 -1
  14. package/package/corpus/skills/cratis-screenplay-slice-design/SKILL.md +1 -1
  15. package/package/corpus/skills/cratis-screenplay-slice-design/references/rule-layers.md +2 -2
  16. package/package/corpus/skills/cratis-screenplay-slice-design/references/worked-example.md +1 -1
  17. package/package/corpus/skills/cratis-screenplay-streams-and-consistency/SKILL.md +3 -3
  18. package/package/corpus/skills/cratis-screenplay-streams-and-consistency/references/chronicle-boundaries.md +2 -2
  19. package/package/corpus/skills/cratis-screenplay-streams-and-consistency/references/consistency-and-concurrency.md +2 -2
  20. package/package/corpus/skills/cratis-screenplay-toolchain/references/renderable-subset.md +3 -3
  21. package/package/corpus/skills/cratis-stage-rendering-and-sandbox/SKILL.md +4 -4
  22. package/package/corpus/skills/cratis-stage-rendering-and-sandbox/references/admission.md +1 -1
  23. package/package/corpus/skills/cratis-stage-rendering-and-sandbox/verification.json +1 -1
  24. package/package.json +1 -1
@@ -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 4.73.1 scaffold pins Arc 22.68.0, so this needs a proven dependency override; never split the modeled reaction |
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 Arc 22.68.0, whose command handler accepts a collection 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
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 22.68.0 needs override). The automation is gap-fill; the `.play` slice and its specifications
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 22.54.0, which has
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's Arc 22.68.0 needs a proven override): hand-write it as one reactor, never split the modeled reaction.
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's Arc 22.68.0 needs a proven override), so gap-fill it whole, never split it. When the automation decides from a view, declare it under
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 Screenplay 4.137.0, Stage 4.73.1, Prologue
41
- 2.0.0 and Arc.Screenplay 22.54.0, not the latest Arc or Chronicle). Checked at these sources:
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
  | --- | --- |
@@ -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's scaffold of Arc 22.68.0/Chronicle 19.45.0, not emitted protection) | decision over a guarded read | command validation |
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's Arc 22.68.0 needs a proven override), so keep the reaction whole.
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. Current pair: CLI 3.53.1 bundling Screenplay
27
- 4.137.0 and Stage 4.73.1 (the standalone compiler is newer, 4.139.0). Render options (`--scope`,
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 22.68.0 and
30
- Chronicle 19.45.0, which are not the latest releases (`cratis-stage-rendering-and-sandbox`
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 22.68.0; whether a newer 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 22.68.0/Chronicle 19.45.0; API availability alone is not verified enforcement.
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`
@@ -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 22.54.0, so recovery behaves like that adapter. It does not replace
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
 
@@ -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 22.68.0/Chronicle 19.45.0: protected-read APIs
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 4.73.1 scaffold pins Arc 22.68.0, whose command handler accepts a collection 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
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 22.68.0, so raise the version through
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
 
@@ -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 22.68.0: 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 |
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 22.68.0/Chronicle 19.45.0: protected-read APIs are
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's Arc 22.68.0/Chronicle 19.45.0); Chronicle DCB; or a constraint). Never copy state
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 Arc 22.68.0/Chronicle 19.45.0 package set, but Stage does not emit
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 4.73.1 rendered apps pin 19.45.0 (the latest Chronicle is 19.50.0).
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.68.0/Chronicle 19.45.0, so protected-read APIs are available
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 4.73.1 scaffold pins Chronicle client/kernel 19.45.0
32
- and Arc 22.68.0 (the CLI bundle's Chronicle is 19.32.0); the APIs exist for gap-fill, not as automatically rendered enforcement.
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 22.68.0 and Chronicle client/kernel 19.45.0; protected-read APIs available to gap-fill. Historical 4.24.2 admission probe: ESM v4, evolved events refused with `STAGE-ESM-026` |
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 4.73.1 rendered apps pin Arc 22.68.0 and Chronicle client/kernel
14
- 19.45.0, so the APIs are available to gap-fill, not automatically emitted or
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 4.73.1 scaffolds Arc 22.68.0
113
- and Chronicle client/kernel 19.45.0 (not the latest releases). `[ProtectedDecision]` and `DecisionRead<T>` /
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's Arc 22.68.0 needs a proven override; hand-write one reactor, never split the reaction) |
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, Arc 22.68.0, Chronicle client/kernel 19.45.0
135
- and emits a `.frontend/` React/Vite app (Components 4.26.2, Scene 4.21.0); these are not the latest
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 4.137.0 and Stage 4.73.1, so its
48
- binder is behind the standalone 4.139.0 compiler. Stage 4.73.1's scaffold pins Arc 22.68.0, Chronicle 19.45.0, Components 4.26.2, Scene 4.21.0 and
49
- Fundamentals 7.22.8. These are **not** the latest releases; do not bump them in managed files
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** (4.137.0 in cratis 3.53.1; the standalone tool is
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 22.68.0, whose command handler accepts a collection only when every element is a command; a rendered app needs a proven dependency override; see `rendered-application.md`) |
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 22.68.0" },
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`" },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cratis/pi",
3
- "version": "7.34.0",
3
+ "version": "7.34.1",
4
4
  "description": "Configuration-aware Cratis AI integration for Pi",
5
5
  "type": "module",
6
6
  "files": [