@cratis/pi 7.34.1 → 7.35.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.
Files changed (227) hide show
  1. package/package/corpus/agents/security-reviewer.md +1 -0
  2. package/package/corpus/agents/spec-writer.md +1 -1
  3. package/package/corpus/harnesses/pi/extensions/shared/rules.ts +3 -1
  4. package/package/corpus/hooks/scripts/cratis-nuget-pins.txt +7 -6
  5. package/package/corpus/hooks/scripts/cratis-release-notes-reviewed.cjs +7 -6
  6. package/package/corpus/hooks/scripts/cratis-store-mutations.json +7 -3
  7. package/package/corpus/product-sync.json +896 -0
  8. package/package/corpus/prompts/add-business-rule.prompt.md +1 -1
  9. package/package/corpus/prompts/ship-changes.prompt.md +2 -2
  10. package/package/corpus/rules/ai-distribution.md +31 -3
  11. package/package/corpus/rules/application-profile.md +2 -1
  12. package/package/corpus/rules/components.md +66 -7
  13. package/package/corpus/rules/concepts.md +11 -3
  14. package/package/corpus/rules/csharp.md +3 -1
  15. package/package/corpus/rules/dialogs.md +9 -0
  16. package/package/corpus/rules/efcore.md +1 -1
  17. package/package/corpus/rules/elixir.md +49 -0
  18. package/package/corpus/rules/framework.md +5 -3
  19. package/package/corpus/rules/general.md +1 -0
  20. package/package/corpus/rules/glossary.md +4 -4
  21. package/package/corpus/rules/go-engineering.md +60 -0
  22. package/package/corpus/rules/go.md +115 -0
  23. package/package/corpus/rules/java.md +5 -2
  24. package/package/corpus/rules/kotlin.md +7 -5
  25. package/package/corpus/rules/orleans.md +65 -9
  26. package/package/corpus/rules/profiles.md +43 -6
  27. package/package/corpus/rules/pull-requests.md +3 -3
  28. package/package/corpus/rules/react.md +8 -1
  29. package/package/corpus/rules/reactors.md +27 -3
  30. package/package/corpus/rules/specs.csharp.md +11 -4
  31. package/package/corpus/rules/specs.scenarios.csharp.md +35 -4
  32. package/package/corpus/rules/specs.typescript.md +2 -1
  33. package/package/corpus/rules/storybook.md +1 -1
  34. package/package/corpus/rules/typescript.md +1 -1
  35. package/package/corpus/rules/vertical-slices.md +37 -5
  36. package/package/corpus/skills/cratis-application-react-specifications/SKILL.md +4 -2
  37. package/package/corpus/skills/cratis-application-slice-specifications/SKILL.md +18 -8
  38. package/package/corpus/skills/cratis-application-slice-specifications/references/query-and-decision-scenarios.md +65 -0
  39. package/package/corpus/skills/cratis-arc-authentication-authorization-and-identity/SKILL.md +53 -57
  40. package/package/corpus/skills/cratis-arc-authentication-authorization-and-identity/references/authentication.md +38 -42
  41. package/package/corpus/skills/cratis-arc-authentication-authorization-and-identity/references/authorization.md +18 -7
  42. package/package/corpus/skills/cratis-arc-authentication-authorization-and-identity/references/authproxy.md +30 -0
  43. package/package/corpus/skills/cratis-arc-authentication-authorization-and-identity/references/frontend.md +12 -9
  44. package/package/corpus/skills/cratis-arc-authentication-authorization-and-identity/references/local-development.md +9 -9
  45. package/package/corpus/skills/cratis-arc-authentication-authorization-and-identity/references/observable-emission-guards.md +8 -5
  46. package/package/corpus/skills/cratis-arc-authentication-authorization-and-identity/references/tenancy.md +20 -4
  47. package/package/corpus/skills/cratis-arc-command/SKILL.md +32 -10
  48. package/package/corpus/skills/cratis-arc-command/references/command-result.md +12 -5
  49. package/package/corpus/skills/cratis-arc-command/references/decisions-and-routing.md +95 -0
  50. package/package/corpus/skills/cratis-arc-command/references/generated-values.md +3 -2
  51. package/package/corpus/skills/cratis-arc-command/references/handler-shapes.md +8 -8
  52. package/package/corpus/skills/cratis-arc-command/references/proxy-generation.md +22 -3
  53. package/package/corpus/skills/cratis-arc-command/references/read-model-injection.md +13 -1
  54. package/package/corpus/skills/cratis-arc-command-execution/SKILL.md +19 -9
  55. package/package/corpus/skills/cratis-arc-command-kotlin/SKILL.md +44 -18
  56. package/package/corpus/skills/cratis-arc-command-kotlin/references/read-model-naming.md +29 -0
  57. package/package/corpus/skills/cratis-arc-command-operation/SKILL.md +10 -9
  58. package/package/corpus/skills/cratis-arc-command-operation/references/execution-and-recovery.md +2 -2
  59. package/package/corpus/skills/cratis-arc-command-operation/references/testing.md +4 -3
  60. package/package/corpus/skills/cratis-arc-command-typescript/SKILL.md +42 -22
  61. package/package/corpus/skills/cratis-arc-command-typescript/references/chronicle-events.md +36 -5
  62. package/package/corpus/skills/cratis-arc-command-typescript/references/command-operations.md +114 -0
  63. package/package/corpus/skills/cratis-arc-command-typescript/references/hosting-and-storage.md +37 -16
  64. package/package/corpus/skills/cratis-arc-command-typescript/references/identity-and-introspection.md +88 -0
  65. package/package/corpus/skills/cratis-arc-command-typescript/references/observability-and-host-scopes.md +25 -0
  66. package/package/corpus/skills/cratis-arc-command-typescript/references/proxy-generation.md +35 -4
  67. package/package/corpus/skills/cratis-arc-command-typescript/references/slice-layout.md +11 -0
  68. package/package/corpus/skills/cratis-arc-command-typescript/verification.json +8 -1
  69. package/package/corpus/skills/cratis-arc-command-validation/SKILL.md +49 -19
  70. package/package/corpus/skills/cratis-arc-ef-core-migration/SKILL.md +12 -6
  71. package/package/corpus/skills/cratis-arc-go/SKILL.md +148 -0
  72. package/package/corpus/skills/cratis-arc-go/references/queries.md +80 -0
  73. package/package/corpus/skills/cratis-arc-hosting/SKILL.md +96 -0
  74. package/package/corpus/skills/cratis-arc-hosting/references/integrations-and-publish.md +80 -0
  75. package/package/corpus/skills/cratis-arc-identity-and-tenancy-kotlin/SKILL.md +137 -0
  76. package/package/corpus/skills/cratis-arc-observable-query-http/SKILL.md +20 -2
  77. package/package/corpus/skills/cratis-arc-query-kotlin/SKILL.md +26 -6
  78. package/package/corpus/skills/cratis-arc-query-paging/SKILL.md +25 -20
  79. package/package/corpus/skills/cratis-arc-query-typescript/SKILL.md +32 -6
  80. package/package/corpus/skills/cratis-arc-query-typescript/references/storage-observation-and-compliance.md +66 -0
  81. package/package/corpus/skills/cratis-arc-query-typescript/verification.json +5 -1
  82. package/package/corpus/skills/cratis-arc-react-page/SKILL.md +24 -13
  83. package/package/corpus/skills/cratis-arc-react-page/references/data-page.md +20 -10
  84. package/package/corpus/skills/cratis-arc-react-page/references/data-tables.md +17 -3
  85. package/package/corpus/skills/cratis-arc-react-page/references/dialogs.md +14 -3
  86. package/package/corpus/skills/cratis-arc-react-page/references/from-screenplay.md +6 -1
  87. package/package/corpus/skills/cratis-arc-react-page/references/provenance.md +1 -1
  88. package/package/corpus/skills/cratis-arc-react-page/references/queries-and-commands.md +11 -1
  89. package/package/corpus/skills/cratis-arc-react-page/verification.json +6 -1
  90. package/package/corpus/skills/cratis-arc-spring-data-kotlin/SKILL.md +163 -0
  91. package/package/corpus/skills/cratis-arc-testing-kotlin/SKILL.md +131 -0
  92. package/package/corpus/skills/cratis-arc-validation-kotlin/SKILL.md +44 -11
  93. package/package/corpus/skills/cratis-arc-validation-typescript/SKILL.md +5 -3
  94. package/package/corpus/skills/cratis-chronicle-cli-operations/SKILL.md +79 -25
  95. package/package/corpus/skills/cratis-chronicle-cli-operations/references/command-effects.md +57 -0
  96. package/package/corpus/skills/cratis-chronicle-client-dotnet/SKILL.md +87 -99
  97. package/package/corpus/skills/cratis-chronicle-client-dotnet/references/additional-surfaces.md +65 -0
  98. package/package/corpus/skills/cratis-chronicle-client-dotnet/references/client-construction.md +42 -0
  99. package/package/corpus/skills/cratis-chronicle-client-dotnet/references/compatibility-check.md +12 -0
  100. package/package/corpus/skills/cratis-chronicle-client-dotnet/references/discovery.md +43 -19
  101. package/package/corpus/skills/cratis-chronicle-client-dotnet/references/hosting.md +29 -1
  102. package/package/corpus/skills/cratis-chronicle-client-elixir/SKILL.md +158 -162
  103. package/package/corpus/skills/cratis-chronicle-client-elixir/references/append-api.md +36 -15
  104. package/package/corpus/skills/cratis-chronicle-client-elixir/references/compliance.md +32 -0
  105. package/package/corpus/skills/cratis-chronicle-client-elixir/references/connections.md +56 -0
  106. package/package/corpus/skills/cratis-chronicle-client-elixir/references/event-sources.md +64 -0
  107. package/package/corpus/skills/cratis-chronicle-client-elixir/references/pitfalls.md +25 -0
  108. package/package/corpus/skills/cratis-chronicle-client-elixir/references/projections.md +48 -0
  109. package/package/corpus/skills/cratis-chronicle-client-elixir/references/upgrading.md +34 -0
  110. package/package/corpus/skills/cratis-chronicle-client-elixir/references/variants.md +13 -5
  111. package/package/corpus/skills/cratis-chronicle-client-elixir/verification.json +23 -0
  112. package/package/corpus/skills/cratis-chronicle-client-go/SKILL.md +162 -0
  113. package/package/corpus/skills/cratis-chronicle-client-go/references/projections.md +73 -0
  114. package/package/corpus/skills/cratis-chronicle-client-kotlin/SKILL.md +87 -88
  115. package/package/corpus/skills/cratis-chronicle-client-kotlin/references/connection-lifecycle.md +13 -0
  116. package/package/corpus/skills/cratis-chronicle-client-kotlin/references/discovery-and-registration.md +14 -4
  117. package/package/corpus/skills/cratis-chronicle-client-kotlin/references/event-sources.md +65 -0
  118. package/package/corpus/skills/cratis-chronicle-client-kotlin/references/options.md +29 -0
  119. package/package/corpus/skills/cratis-chronicle-client-kotlin/references/spring-boot.md +13 -0
  120. package/package/corpus/skills/cratis-chronicle-client-kotlin/references/variants.md +5 -4
  121. package/package/corpus/skills/cratis-chronicle-client-typescript/SKILL.md +165 -156
  122. package/package/corpus/skills/cratis-chronicle-client-typescript/references/read-models-and-projections.md +54 -11
  123. package/package/corpus/skills/cratis-chronicle-client-typescript/references/testing.md +126 -0
  124. package/package/corpus/skills/cratis-chronicle-client-typescript/references/variants.md +3 -5
  125. package/package/corpus/skills/cratis-chronicle-client-typescript/verification.json +19 -0
  126. package/package/corpus/skills/cratis-chronicle-compliance/SKILL.md +36 -13
  127. package/package/corpus/skills/cratis-chronicle-decision-reads/SKILL.md +110 -0
  128. package/package/corpus/skills/cratis-chronicle-decision-reads/references/admission-and-ownership.md +57 -0
  129. package/package/corpus/skills/cratis-chronicle-decision-reads/verification.json +12 -0
  130. package/package/corpus/skills/cratis-chronicle-event-constraints/SKILL.md +58 -19
  131. package/package/corpus/skills/cratis-chronicle-event-constraints/references/closing-streams.md +73 -0
  132. package/package/corpus/skills/cratis-chronicle-event-modeling/SKILL.md +32 -3
  133. package/package/corpus/skills/cratis-chronicle-event-specifications/SKILL.md +18 -5
  134. package/package/corpus/skills/cratis-chronicle-event-type-migration/SKILL.md +32 -2
  135. package/package/corpus/skills/cratis-chronicle-hosting/SKILL.md +134 -0
  136. package/package/corpus/skills/cratis-chronicle-hosting/references/operations.md +89 -0
  137. package/package/corpus/skills/cratis-chronicle-hosting/verification.json +14 -0
  138. package/package/corpus/skills/cratis-chronicle-mcp-inspection/SKILL.md +93 -66
  139. package/package/corpus/skills/cratis-chronicle-mcp-inspection/references/blocked-tools.md +21 -7
  140. package/package/corpus/skills/cratis-chronicle-mcp-inspection/references/deployment.md +77 -0
  141. package/package/corpus/skills/cratis-chronicle-mcp-inspection/references/observational-tools.md +46 -4
  142. package/package/corpus/skills/cratis-chronicle-multi-tenancy/SKILL.md +15 -1
  143. package/package/corpus/skills/cratis-chronicle-projection/SKILL.md +44 -10
  144. package/package/corpus/skills/cratis-chronicle-projection/references/fluent-builder.md +7 -1
  145. package/package/corpus/skills/cratis-chronicle-projection/references/model-bound-attributes.md +8 -0
  146. package/package/corpus/skills/cratis-chronicle-reactor/SKILL.md +85 -105
  147. package/package/corpus/skills/cratis-chronicle-reactor/references/specifications.md +20 -1
  148. package/package/corpus/skills/cratis-chronicle-read-model/SKILL.md +2 -2
  149. package/package/corpus/skills/cratis-chronicle-read-model/references/queries.md +35 -16
  150. package/package/corpus/skills/cratis-chronicle-read-model-specifications/SKILL.md +15 -3
  151. package/package/corpus/skills/cratis-chronicle-reducer/SKILL.md +23 -4
  152. package/package/corpus/skills/cratis-chronicle-web-workbench/SKILL.md +40 -15
  153. package/package/corpus/skills/cratis-cli-terminal-workbench/SKILL.md +20 -6
  154. package/package/corpus/skills/cratis-code-review/SKILL.md +25 -3
  155. package/package/corpus/skills/cratis-components-accessibility/SKILL.md +20 -4
  156. package/package/corpus/skills/cratis-components-schema-editor/SKILL.md +40 -28
  157. package/package/corpus/skills/cratis-components-schema-editor/references/tree-layout.md +62 -0
  158. package/package/corpus/skills/cratis-components-schema-editor/verification.json +14 -0
  159. package/package/corpus/skills/cratis-components-stepper-command-dialog/SKILL.md +16 -8
  160. package/package/corpus/skills/cratis-components-styling/SKILL.md +57 -20
  161. package/package/corpus/skills/cratis-components-styling/verification.json +13 -0
  162. package/package/corpus/skills/cratis-components-toolbar/SKILL.md +37 -7
  163. package/package/corpus/skills/cratis-components-toolbar/verification.json +12 -0
  164. package/package/corpus/skills/cratis-engineering-csharp-conventions/SKILL.md +6 -0
  165. package/package/corpus/skills/cratis-engineering-csharp-conventions/references/exceptions-logging-and-di.md +5 -3
  166. package/package/corpus/skills/cratis-fundamentals-concept/SKILL.md +19 -6
  167. package/package/corpus/skills/cratis-fundamentals-concept/references/typescript-concepts.md +97 -0
  168. package/package/corpus/skills/cratis-fundamentals-concept/verification.json +4 -1
  169. package/package/corpus/skills/cratis-fundamentals-concept-go/SKILL.md +112 -0
  170. package/package/corpus/skills/cratis-fundamentals-type-discovery/SKILL.md +54 -17
  171. package/package/corpus/skills/cratis-fundamentals-type-discovery/verification.json +14 -0
  172. package/package/corpus/skills/cratis-lens-browser-extension/SKILL.md +55 -28
  173. package/package/corpus/skills/cratis-performance-review/SKILL.md +5 -2
  174. package/package/corpus/skills/cratis-release-notes/SKILL.md +3 -1
  175. package/package/corpus/skills/cratis-screenplay-automations-and-translations/SKILL.md +5 -4
  176. package/package/corpus/skills/cratis-screenplay-command-surface/SKILL.md +5 -6
  177. package/package/corpus/skills/cratis-screenplay-command-surface/references/compliance.md +24 -6
  178. package/package/corpus/skills/cratis-screenplay-command-surface/references/enum-numbers.md +4 -2
  179. package/package/corpus/skills/cratis-screenplay-command-surface/references/generated-values-and-responses.md +4 -1
  180. package/package/corpus/skills/cratis-screenplay-event-modeling/SKILL.md +3 -2
  181. package/package/corpus/skills/cratis-screenplay-event-modeling/references/parsed-not-runnable.md +2 -2
  182. package/package/corpus/skills/cratis-screenplay-legacy-extraction/SKILL.md +1 -0
  183. package/package/corpus/skills/cratis-screenplay-legacy-extraction/references/generate-notes.md +34 -4
  184. package/package/corpus/skills/cratis-screenplay-model-authoring/SKILL.md +5 -3
  185. package/package/corpus/skills/cratis-screenplay-model-authoring/references/language-reference.md +1 -1
  186. package/package/corpus/skills/cratis-screenplay-model-authoring/references/mcp-tools.md +4 -2
  187. package/package/corpus/skills/cratis-screenplay-model-authoring/references/property-links.md +42 -3
  188. package/package/corpus/skills/cratis-screenplay-model-authoring/verification.json +3 -1
  189. package/package/corpus/skills/cratis-screenplay-render-and-gap-fill/references/gap-fill-handoff.md +3 -1
  190. package/package/corpus/skills/cratis-screenplay-scenario-coverage/SKILL.md +3 -1
  191. package/package/corpus/skills/cratis-screenplay-specifications/references/examples-and-routes.md +48 -0
  192. package/package/corpus/skills/cratis-screenplay-specifications/verification.json +3 -1
  193. package/package/corpus/skills/cratis-screenplay-streams-and-consistency/SKILL.md +4 -2
  194. package/package/corpus/skills/cratis-screenplay-streams-and-consistency/references/streams-example.md +5 -4
  195. package/package/corpus/skills/cratis-screenplay-toolchain/SKILL.md +8 -6
  196. package/package/corpus/skills/cratis-screenplay-toolchain/references/cheat-sheet-example.md +2 -2
  197. package/package/corpus/skills/cratis-screenplay-toolchain/references/diagnostics.md +4 -2
  198. package/package/corpus/skills/cratis-screenplay-toolchain/references/doc-contradictions.md +1 -1
  199. package/package/corpus/skills/cratis-screenplay-toolchain/references/executable-subset.md +16 -11
  200. package/package/corpus/skills/cratis-screenplay-toolchain/references/renderable-subset.md +5 -2
  201. package/package/corpus/skills/cratis-screenplay-toolchain/references/screenplay-contract.json +1329 -32
  202. package/package/corpus/skills/cratis-screenplay-toolchain/references/screenplay-contract.version +1 -1
  203. package/package/corpus/skills/cratis-screenplay-toolchain/references/verdicts.md +2 -2
  204. package/package/corpus/skills/cratis-screenplay-toolchain/references/versions.md +23 -7
  205. package/package/corpus/skills/cratis-screenplay-toolchain/verification.json +1 -1
  206. package/package/corpus/skills/cratis-screenplay-ui-composition/SKILL.md +2 -0
  207. package/package/corpus/skills/cratis-screenplay-ui-composition/references/screen-composition-contract.md +27 -9
  208. package/package/corpus/skills/cratis-security-review/SKILL.md +9 -3
  209. package/package/corpus/skills/cratis-security-review/references/arc-boundaries.md +59 -0
  210. package/package/corpus/skills/cratis-specification-by-example/SKILL.md +7 -0
  211. package/package/corpus/skills/cratis-specifications-csharp/SKILL.md +43 -11
  212. package/package/corpus/skills/cratis-specifications-csharp/references/application-scenarios.md +16 -4
  213. package/package/corpus/skills/cratis-specifications-csharp/references/csharp-patterns.md +18 -5
  214. package/package/corpus/skills/cratis-specifications-csharp/references/integration-specs.md +21 -0
  215. package/package/corpus/skills/cratis-specifications-csharp/references/shared-lifecycle.md +34 -0
  216. package/package/corpus/skills/cratis-specifications-csharp/verification.json +13 -0
  217. package/package/corpus/skills/cratis-specifications-typescript/SKILL.md +14 -5
  218. package/package/corpus/skills/cratis-specifications-typescript/verification.json +12 -0
  219. package/package/corpus/skills/cratis-stage-rendering-and-sandbox/SKILL.md +8 -2
  220. package/package/corpus/skills/cratis-stage-rendering-and-sandbox/references/admission.md +6 -3
  221. package/package/corpus/skills/cratis-stage-rendering-and-sandbox/references/rendered-application.md +10 -1
  222. package/package/corpus/skills/cratis-stage-rendering-and-sandbox/references/scene-runtime.md +75 -0
  223. package/package/corpus/skills/cratis-stage-rendering-and-sandbox/verification.json +5 -0
  224. package/package/corpus/skills/cratis-studio-mcp-safety-guidance/SKILL.md +14 -1
  225. package/package/profile-catalog.json +68 -1
  226. package/package.json +1 -1
  227. package/src/index.ts +3 -1
@@ -51,7 +51,7 @@ the [MCP loop](mcp-loop.md).
51
51
  | Source and validation | `diagnostics`, `read-document`, `merged-document`, `syntax-schema` | Read exact source or typed structure and diagnose problems |
52
52
  | Workspace inspection | `open-workspace`, `read-workspace`, `read-ast`, `workspace-state`, `export-workspace`, `repair-capabilities` | Obtain current identities, handles, readiness, code attachment requirements, source-map locations, durable-state status and the repair catalog |
53
53
  | Visual (MCP-Apps hosts only) | `visualize-model` | Draw the board for the model or a `proposalId`; its `sketch` argument previews a what-if of whole documents. Reads only |
54
- | Planning | `propose-source`, `propose-ast`, `propose-rename`, `propose-move`, `propose-repair`, `propose-number-enum-members`, `propose-extract-inline-event`, `propose`, `recommend-layout`, `expand-layout` | Produce validated, reviewable candidates without writing them |
54
+ | Planning | `propose-source`, `propose-ast`, `propose-rename`, `propose-move`, `propose-repair`, `propose-property`, `propose-number-enum-members`, `propose-extract-inline-event`, `propose`, `recommend-layout`, `expand-layout` | Produce validated, reviewable candidates without writing them |
55
55
  | Review | `read-proposal`, `discard-proposal` | Inspect exact changes, dropped comments and proposed attachments, or abandon a connection-local proposal |
56
56
  | Effects | `apply`, `recover-workspace` | Apply an accepted plan or explicitly recover an interrupted write |
57
57
 
@@ -59,7 +59,9 @@ the [MCP loop](mcp-loop.md).
59
59
 
60
60
  `propose` is the executable-only whole-document interface. Prefer `propose-source`
61
61
  for whole `.play` text, `propose-ast` for focused typed edits, and `propose-rename`
62
- for proved logical renames. A
62
+ for proved logical renames. Standalone 4.140.0 adds `propose-property` for explicit
63
+ property rename/removal selections, AutoMap preservation and event-generation
64
+ choices; read [property evidence and planning](property-links.md) before proposing. A
63
65
  source-only authoring proposal may be accepted while `executableReady` is false.
64
66
  That is not permission to claim the application runs.
65
67
 
@@ -7,11 +7,13 @@
7
7
 
8
8
  - Address and query
9
9
  - Read evidence, not just a count
10
+ - Propose a property change (4.140.0)
10
11
 
11
12
  Screenplay 4.138.0 released property-path evidence in `find-references` and
12
13
  `dependencies`; this guidance was checked against 4.139.0. Discover installed
13
14
  `tools/list`: CLI 3.53.1's 4.137.0 bundle predates it. These are read-only
14
- inspection tools, not a property-change planner.
15
+ inspection tools. Standalone 4.140.0 adds the separate `propose-property` planner
16
+ below; the CLI bundle has neither capability.
15
17
 
16
18
  ## Address and query
17
19
 
@@ -122,5 +124,42 @@ needs a persisted-contract evolution decision; the catalog is not storage eviden
122
124
 
123
125
  Source/output authority: `v4.139.0:Documentation/screenplay/mcp/reference.md`
124
126
  (property links), `Source/DotNET/Screenplay.Mcp/McpPropertyDependencies.cs`,
125
- `McpToolSchemas.cs`, and decision 0044's released prerequisite index. The planner
126
- phases in that decision are not release evidence.
127
+ `McpToolSchemas.cs`, and decision 0044's released prerequisite index. The planner's release evidence is separate below.
128
+
129
+ ## Propose a property change (4.140.0)
130
+
131
+ Read the target property handle with `read-ast`, then call `propose-property`
132
+ with `expectedRevision`, `expectedCatalogRevision`, `action: "rename"|"remove"`,
133
+ `target` and `expectedName`. Rename also needs `newName`. Optional `alsoRename`
134
+ or `alsoRemove` entries are `{ "target": <handle>, "expectedName": <name> }`.
135
+ Select only intended command, current-event and non-key read-model properties:
136
+ chain membership establishes eligibility, not permission to edit every field.
137
+ Off-chain selections refuse atomically. Historical generations, inline events,
138
+ keys, opaque or incomplete links and unsupported spans refuse rather than guess.
139
+
140
+ Rename repairs proven references and fixtures. Renaming only a command input
141
+ keeps the event payload name; broken AutoMap links become explicit mappings.
142
+ Removal refuses while readers remain. Removed expected values disclose
143
+ `weakensAssertion: true`; when inherited `then` steps cannot be determined, removal
144
+ refuses `AmbiguousPropertyReference`, not a false assertion-preservation verdict.
145
+ Unrelated same-named fields appear in `property.notChanged`.
146
+
147
+ For any selected event property, choose exactly one mode: `newGeneration: true`
148
+ appends N+1 and preserves history; `eventNeverPersisted: true` edits current N in
149
+ place and requires actual knowledge that it was never stored. Neither flag selects
150
+ additional events. New generations require transformations before Chronicle deployment.
151
+
152
+ Default validation is `Authoring` (optional `Executable`), formatting
153
+ `PreserveTrivia`, reference policy always `Safe`. Structural changes require
154
+ explicit `CanonicalizeTouchedDocuments` consent. Inspect retained `read-proposal`
155
+ and `view: "semantic-diff"` before `apply`; only apply writes source and identities.
156
+ Review `property.generations`, always an array ordered by canonical event address,
157
+ with one entry per selected event: `event`, `from`, `to`, `mode`. In-place edits
158
+ have equal revisions. `[]` means no accepted planned event edits, not success;
159
+ there is no singular `property.generation`. `deployableWithoutTransformation`
160
+ and `esmVersionKnown` are independent of authoring acceptance.
161
+
162
+ Authority: Screenplay `v4.140.0:Source/DotNET/Screenplay.Mcp/McpWorkspaces.Property.cs`,
163
+ `Screenplay/Workspaces/WorkspaceProperty{Request,Plan,Safety,Report}.cs`,
164
+ `WorkspacePropertyAssertionProvenance.cs`, `WorkspaceEventGenerations.cs`, and
165
+ `Documentation/screenplay/mcp/authoring-tools.md`; decision 0067.
@@ -4,9 +4,11 @@
4
4
  "fixtures": [],
5
5
  "assertions": [
6
6
  { "kind": "play-compiles" },
7
+ { "kind": "skill-contains", "value": "weakensAssertion: true", "file": "references/property-links.md" },
8
+ { "kind": "skill-contains", "value": "property.generations", "file": "references/property-links.md" },
7
9
  {
8
10
  "kind": "skill-contains",
9
- "value": "Screenplay v4.139.0"
11
+ "value": "Screenplay v4.141.0"
10
12
  },
11
13
  {
12
14
  "kind": "skill-contains",
@@ -96,7 +96,9 @@ A reaction that both produces events and invokes commands keeps its single model
96
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
- handler idempotent (`[OnceOnly]` and the failure behavior in `cratis-chronicle-reactor`). Return a
99
+ handler idempotent independently of `[OnceOnly]`, which excludes replay only, not recovery
100
+ or crash redelivery (Chronicle v19.50.1 `Documentation/code-analysis/CHR0022.mdx`;
101
+ see `cratis-chronicle-reactor`). Return a
100
102
  stable array or list. The Stage scaffold pins an older Arc, so raise the version through
101
103
  `Customizations/Dependencies.props` only after a restore and build proves it. Never split the
102
104
  reaction or drop an effect to dodge rendering.
@@ -71,7 +71,9 @@ question is not four approvals.
71
71
  payload: one line per read model. One schema reused for every command and view may indicate
72
72
  the per-view judgment was skipped: check for a recorded reason per view before concluding.
73
73
  6. **Example data**: a small cast per feature; reuse only where meaning agrees; preserve
74
- existing intentional fixtures (`references/scenario-catalogue.md` "Example data").
74
+ existing intentional fixtures (`references/scenario-catalogue.md` "Example data"). Shared
75
+ fixtures may live as typed `example`s in another document beside the declarations they type
76
+ (`cratis-screenplay-specifications` `references/examples-and-routes.md`).
75
77
  7. **Draft commands**: happy path, each rule, denial, duplicates and retries, competing claims,
76
78
  state violations, alternative branches, compensation, external failure, evolution. In each
77
79
  rejection vary only the value under test. Use typed `parameter`/named `case`
@@ -6,6 +6,7 @@
6
6
  ## Contents
7
7
 
8
8
  - Typed examples
9
+ - Examples typed from another document
9
10
  - Effective values
10
11
  - Event routes
11
12
  - Redelivery locators
@@ -49,6 +50,53 @@ module Projects
49
50
  name = "Override"
50
51
  ```
51
52
 
53
+ ## Examples typed from another document
54
+
55
+ An example's type may be an event, command or read model declared in another
56
+ document of the same compilation, by simple name when unambiguous or by qualified
57
+ name (`Billing.Facts.Recording.Recorded`). Checked against Screenplay v4.139.0
58
+ (Screenplay#648, released in 4.135.1) and the standalone 4.139.0 compiler:
59
+
60
+ ```text
61
+ // declarations.play: module Billing > feature Facts > slice StateChange Recording
62
+ // declares command Record, event Recorded and a specification using the examples
63
+ // application.play
64
+ import "declarations.play"
65
+
66
+ example Fact : Billing.Facts.Recording.Recorded
67
+ amount = 10
68
+ for "one"
69
+ example Input : Record
70
+ id = "one"
71
+ amount = 20
72
+ ```
73
+
74
+ That folder compiled with warnings as errors and `screenplay test` passed the
75
+ specification that uses `given Fact` and `when Input`. Rules:
76
+
77
+ - A document checked on its own defers an imported type, as for an inline
78
+ `given`; it reports no `PLAY0520` there.
79
+ - Values are checked only when the compilation includes the declaration. A wrong
80
+ value (a string for an `Int`) surfaces as `PLAY0525` at binding (`screenplay
81
+ test`), not at compile.
82
+ - A type that is still unknown or ambiguous after assembly, or names a concept,
83
+ type or another example, is `PLAY0520`. A scratch file importing only the
84
+ contract name is exactly that case:
85
+
86
+ ```screenplay expect PLAY0520
87
+ import Billing.Facts.Recording.Recorded
88
+ example Fact : Recorded
89
+ amount = 10
90
+ ```
91
+
92
+ - Import the declaring file (`import "declarations.play"`), not the contract
93
+ name. A named `import X.Y.Z` of a declaration the application already has warns
94
+ `PLAY0290` (no effect), and binding still refuses any named import with
95
+ `PLAY0268`, as for inline givens; public `from "<store>"` imports are refused
96
+ the same way (#481).
97
+ - The example is resolved in its own declaration scope, so shared example data may
98
+ live beside the declarations it types, in any document.
99
+
52
100
  ## Effective values
53
101
 
54
102
  An example occupies the ordinary name slot in given/event, given readmodel,
@@ -79,6 +79,8 @@
79
79
  {
80
80
  "kind": "skill-contains",
81
81
  "value": "Cratis/cli#242", "file": "references/reactions-and-cascades.md"
82
- }
82
+ },
83
+ { "kind": "skill-contains", "value": "Examples typed from another document", "file": "references/examples-and-routes.md" },
84
+ { "kind": "skill-contains", "value": "`PLAY0520`", "file": "references/examples-and-routes.md" }
83
85
  ]
84
86
  }
@@ -156,8 +156,10 @@ option, mark it `ASSUMED` in the slice or module `documentation` and in the sess
156
156
  block compiles but is PLAY0271 at binding. Keep both when they state real intent; they are not
157
157
  protection. `description` text never reaches rendered code: a rule that lives only in prose is
158
158
  unenforced there.
159
- - `pii` and `secret` block binding (PLAY0268); legacy markers are deprecated
160
- (PLAY0565). Never remove protection to pass a tool. PLAY0515 also refuses
159
+ - `pii` and `secret` bind as ESM v13 on standalone 4.141.0, not the pinned CLI;
160
+ enum/identity compliance and protected events with explicit subject marks still
161
+ refuse PLAY0268 (command-surface `references/compliance.md`). Legacy markers are
162
+ deprecated (PLAY0565). Never remove protection to pass a tool. PLAY0515 also refuses
161
163
  scalar/composite stream-id types and route mapping sources, including nested paths.
162
164
  - At 4.127.0 stream-id literals must be nonempty, well-formed NFC text (refused,
163
165
  not normalized); integer ids in Double mode stay within ±(2^53−1). Exact mode
@@ -5,16 +5,17 @@ cross-stream references as payload, three kinds of uniqueness constraint, a stat
5
5
  rule recorded as **NOT enforced in the model today**, a declared `concurrency` scope, and an
6
6
  active-state view with removal. Read it with `consistency-and-concurrency.md` (sections 1-4).
7
7
 
8
- The model compiles at 4.127.0 (V1, warnings as errors) but is not binding-ready by design: the `pii`
9
- concept fails binding (PLAY0268), `reads` and the `concurrency` block are PLAY0271, and
10
- `require` over a view is PLAY0268. Keep those lines: they state real intent.
8
+ The model compiles at 4.127.0 (V1, warnings as errors) but is not binding-ready by design:
9
+ `reads` and the `concurrency` block are PLAY0271, and `require` over a view is PLAY0268.
10
+ The `pii` concept failed binding on that compiler and still fails on the pinned CLI,
11
+ but binds as v13 on standalone 4.141.0. Keep those lines: they state real intent.
11
12
 
12
13
  ```screenplay expect PLAY0516 test=unbound
13
14
  // cratis-screenplay-streams-and-consistency: complete design-mode example (V1 with --warnings-as-errors).
14
15
  // Shows: one business identity per stream, cross-stream references as payload, uniqueness
15
16
  // constraints (single, composite with release, unique event), a recorded state-dependent rule
16
17
  // that Screenplay cannot enforce, a declared concurrency scope, and an active-state view with removal.
17
- // Historical binding probes refused compliance; the pii concept still fails binding (PLAY0268), the
18
+ // Historical/CLI binding probes refuse compliance; standalone 4.141.0 binds this pii concept as v13, the
18
19
  // concurrency block and `reads` are PLAY0271, `require` over a view is PLAY0268. Keep them: they state
19
20
  // real intent. The capacity rule is NOT enforced in the model today (see the slice description).
20
21
 
@@ -22,7 +22,7 @@ files is one application: always check the folder, never one file of it.
22
22
 
23
23
  When choosing or upgrading a tool, or checking version-specific capabilities, read `references/versions.md`; it is the only version table, and other skills point to it. For exact diagnostic codes, MCP names/parameters and standalone CLI options, search the large published [references/screenplay-contract.json](references/screenplay-contract.json), pinned by [references/screenplay-contract.version](references/screenplay-contract.version), rather than loading it in full. Locate a diagnostic by its exact `code` (for example `"code": "PLAY0029"`), a tool by its exact `name` (for example `"name": "read-workspace"`), or a command in `cliCommands`; read the matched object for retirement, parameters or options. [references/screenplay-contract-exceptions.json](references/screenplay-contract-exceptions.json) records reasoned exceptions for historical statements; it does not change the current contract.
24
24
 
25
- The standalone pin is Screenplay 4.139.0.
25
+ The standalone pin is Screenplay 4.141.0.
26
26
  CLI and bundled package pins: `references/versions.md`. The single version table records
27
27
  released source evidence and historical probes separately; do not relabel an old
28
28
  render/browser result as a probe of the current packages.
@@ -31,7 +31,7 @@ Historical screens-release evidence: CLI 3.40.7 / Stage 4.51.1 / bundled
31
31
  Screenplay 4.114.0 opened the canonical corpus with `executableReady true`
32
32
  and the stdio transcript exposed 37 tools; standalone language 4.122.0 was
33
33
  recorded in that vector. These retained results are not a rerun on CLI 3.53.1
34
- or Screenplay 4.139.0.
34
+ or Screenplay 4.141.0.
35
35
 
36
36
  ## Ground rules
37
37
 
@@ -44,7 +44,7 @@ or Screenplay 4.139.0.
44
44
  3. **Pick the compiler deliberately and name it.** Standalone `screenplay` for
45
45
  current language checks and reference specifications; `cratis` for rendering
46
46
  and generation. Bundled and standalone versions differ (CLI 3.53.1 bundles 4.137.0;
47
- the standalone pin is 4.139.0). Report both tool and
47
+ the standalone pin is 4.141.0). Report both tool and
48
48
  version, rather than transferring a verdict across releases.
49
49
  4. **Know the mode** (design, executable, renderable) and write from its subset.
50
50
  5. **Capability is not correctness.** The tool you ran decides what is accepted today; the
@@ -90,8 +90,8 @@ V2 and V3 need MCP (V3 alone can also be read from `cratis screenplay validate -
90
90
  server with a fixed root when the tool is older than 4.63.2 (the roots bug hit 4.63.1 and the
91
91
  4.60.1 bundled by cratis before 3.28.2; 4.66.0 and later and cratis 3.28.2 are fine). A subagent without MCP reports "V2 not run: no MCP in this agent".
92
92
 
93
- One line per verdict, tool first, for example `V1 pass (screenplay 4.139.0, 3 files)` and
94
- `V3 blocked: PLAY0268 x3 (filter query, pii)`. Name the source identity (commit plus the digest from
93
+ One line per verdict, tool first, for example `V1 pass (screenplay 4.141.0, 3 files)` and
94
+ `V3 blocked: PLAY0268 x3 (filter query, enum compliance)`. Name the source identity (commit plus the digest from
95
95
  the source-identity helper (`cratis-screenplay-modeling-lifecycle` `references/verdicts-and-modes.md` "Source identity")) the verdict ran on; keep it apart from the MCP
96
96
  `modelRevision`, which is semantic and, without `.screenplay/identities.json`,
97
97
  changes with the root folder name.
@@ -102,7 +102,9 @@ changes with the root folder name.
102
102
  `references/cheat-sheet.md`. Read [references/cheat-sheet-example.md](references/cheat-sheet-example.md) when you need one complete design-mode document with every construct family.
103
103
  - **Executable** (binds, V3): `references/executable-subset.md`. Optional keyed lookups, unfiltered
104
104
  lists and lists narrowed by one `by` key (observable too); `filter`, `scoped to`, `performer` and composite `by` do not bind; no handler (PLAY0268, with or without `implementation`/`hint`); `reads` and
105
- `concurrency` do not bind (PLAY0271); no compliance markers (`pii`/`secret`); v6 constructs bind on Screenplay 4.61 or
105
+ `concurrency` do not bind (PLAY0271); concept compliance binds as v13 on standalone
106
+ 4.141.0, not the pinned CLI (precise refusals: command-surface `references/compliance.md`);
107
+ v6 constructs bind on Screenplay 4.61 or
106
108
  later (standalone, and cratis 3.28.2 or later); generated values and `returns` responses bind (ESM v7)
107
109
  from Screenplay 4.68.0 (also in the current CLI bundle) (`references/generated-responses-example.md`). Read [references/executable-example.md](references/executable-example.md) when you need a small StateChange and StateView model that binds executable, [references/pdl-example.md](references/pdl-example.md) when writing projection forms that bind and run, and [references/automation-translate-example.md](references/automation-translate-example.md) when writing Automation and Translate slices (ESM v6).
108
110
  - **Renderable** (V5): `references/renderable-subset.md` has the current Stage 4.73.1 table and
@@ -2,7 +2,7 @@
2
2
 
3
3
  One complete document with every construct family. Design mode, not executable. Prose rules: [cheat-sheet.md](cheat-sheet.md); tool versions: [versions.md](versions.md); what binds: [executable-subset.md](executable-subset.md).
4
4
 
5
- Binding blockers: unquoted import, `pii`, `reads` (PLAY0271), `starts with`, a `filter` query (lists and observable lists bind). Executable shapes are in the sibling examples. The bare-marker fence compiles warning-free on standalone 4.127.0; the earlier legacy-marker version compiled on 4.66.0 and CLI 3.28.2. `RecordingAPayment` lists the `InvoiceClosed` cascade, which the cratis 3.27.1 bundle (4.60.1) rejected with a false PLAY0285 ("outcome cannot be produced by 'RecordPayment'"); 3.28.2 accepts it.
5
+ Binding blockers: unquoted import, `reads` (PLAY0271), `starts with`, a `filter` query (lists and observable lists bind). Executable shapes are in the sibling examples. The bare-marker fence compiles warning-free on standalone 4.127.0; the earlier legacy-marker version compiled on 4.66.0 and CLI 3.28.2. `RecordingAPayment` lists the `InvoiceClosed` cascade, which the cratis 3.27.1 bundle (4.60.1) rejected with a false PLAY0285 ("outcome cannot be produced by 'RecordPayment'"); 3.28.2 accepts it.
6
6
 
7
7
  ```screenplay test=unbound
8
8
  // Design-mode cheat-sheet: every construct family; compiles warning-free on the standalone tool.
@@ -12,7 +12,7 @@ import Customers.CustomerRegistered // unquoted = another bounded context
12
12
 
13
13
  concept InvoiceId : Uuid // primitives: Uuid String Int Decimal Bool Date DateTime Enum
14
14
  concept PaymentId : Uuid
15
- concept Email : String pii // pii / secret (blocks executability)
15
+ concept Email : String pii // v13 on standalone 4.141.0; refuses on pinned CLI
16
16
  pii reason "Identifies a person"
17
17
  validate
18
18
  not empty message "An email is required"
@@ -172,8 +172,10 @@ escapes `%`/`|`, not an inferred split of legacy text.
172
172
 
173
173
  Identity declarations and event `subject` are metadata; reading a declared
174
174
  `$identity` detail in executable clauses is PLAY0268. `runs as` is admitted as
175
- ESM v10 in the current standalone, not a current PLAY0268 gap. Compliance markers
176
- still block binding; purpose metadata is PLAY0270. See command-surface
175
+ ESM v10 in the current standalone, not a current PLAY0268 gap. At standalone
176
+ 4.141.0, concept compliance binds as v13; enum/identity compliance and protected
177
+ events with explicit subject marks still refuse PLAY0268. CLI 3.53.1's 4.137.0
178
+ bundle retains the blanket marker refusal; purpose metadata is PLAY0270. See command-surface
177
179
  `references/compliance.md` and `references/context.md` for syntax and limits.
178
180
 
179
181
  `screenplay_repair_capabilities` and `propose-repair` advertise PLAY0653: a
@@ -42,7 +42,7 @@ read from source or documentation.
42
42
  | 14 | `$causedBy` | not evaluable (#4119), not ESM | showcase only |
43
43
  | 15 | literal keys | `key literal "global"` vs `key "global"` | both compile; prefer `literal` |
44
44
  | 16 | query admission | `D/queries.md:74` now says live, filtered, scoped and performer queries are not admitted | the binder also rejects collection queries and a missing `by`, which stay undocumented [probed] |
45
- | 17 | `@pii` | `D/concepts.md:3,33` "Chronicle applies `@pii` and `@sensitive` rules automatically" | the binder rejects any compliance attribute (PLAY0268); keep it, report V3 blocked. `@sensitive` means an operational secret (`[Encrypted]` + `[NotAudited]`; Screenplay decision 0034); the historically probed tools (standalone 4.68.0, bundle 4.66.0) do **not** report `PLAY0515` (`@pii` from 4.69.1, `@sensitive` from 4.84.1): there only Chronicle catches either attribute on an event-source identifier, at build time of the generated code (CHR0034 for `@pii`, CHR0052 for `@sensitive`) |
45
+ | 17 | `@pii` | `D/concepts.md:3,33` "Chronicle applies `@pii` and `@sensitive` rules automatically" | the historical binder rejected any compliance attribute (PLAY0268); standalone 4.141.0 instead admits concept compliance as v13 with narrower enum/identity/subject-lineage refusals (command-surface `references/compliance.md`). Keep protection; the pinned CLI still reports V3 blocked. `@sensitive` means an operational secret (`[Encrypted]` + `[NotAudited]`; Screenplay decision 0034); the historically probed tools (standalone 4.68.0, bundle 4.66.0) do **not** report `PLAY0515` (`@pii` from 4.69.1, `@sensitive` from 4.84.1): there only Chronicle catches either attribute on an event-source identifier, at build time of the generated code (CHR0034 for `@pii`, CHR0052 for `@sensitive`) |
46
46
  | 18 | read-model identity | `D/readmodels.md:32` "from the keyed query" | at 4.135.0 explicit `key` wins; else single-instance queries agree on one read-model `by` property; only with none and an admitted list query does conventional `*Id` inference run (collection-key exclusions: read-surface `references/named-keys.md`). Queryless views need explicit `key` |
47
47
  | 19 | `$strings` constraint messages | `D/constraints.md:31` vs `D/internationalization.md:55` | the compiler keeps the key; realization localizes |
48
48
  | 20 | composite key braces | optional in the EBNF; both forms in docs | both fine |
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Contents
4
4
 
5
- - Caller and compliance boundary (4.127.0)
5
+ - Caller and compliance boundary (4.141.0)
6
6
  - Admitted on both compilers
7
7
  - Admitted from Screenplay 4.61 (ESM v6): standalone tool and cratis 3.28.2 or later
8
8
  - Generated values and responses (ESM v7): standalone 4.68.0 or later; the cratis 3.53.1 bundle binds them too
@@ -16,12 +16,12 @@ Current pins: `versions.md`. Detailed
16
16
  4.66.0/4.68.0 binder probes below retain their historical labels. Current source
17
17
  admits routes as ESM v8, public/direction constructs as v9, identity/overrides/filters
18
18
  as v10, qualifying non-route Double literals as v11 (exact lowering of Double-mode literals)
19
- and non-positional enum numbers as v12. Operations, the `numbers exact` **source mode** (PLAY0268) and
19
+ and non-positional enum numbers as v12; concept compliance as v13. Operations, the `numbers exact` **source mode** (PLAY0268) and
20
20
  reaction refusals/redelivery remain unadmitted. Use the actual
21
21
  binder before promoting an older probe to a current capability claim.
22
22
 
23
23
  What the binder admits, and what it refuses with which code. The answer depends on the
24
- compiler version: the standalone tool (4.139.0) binds through v12; the compiler bundled in cratis
24
+ compiler version: the standalone tool (4.141.0) binds through v13; the compiler bundled in cratis
25
25
  3.53.1 (4.137.0) binds ESM through v10 for rendering and refuses non-positional enum numbers at
26
26
  binding; older bundles (4.66.0 in cratis 3.28.x, admitting v1 to v6; 4.60.1 before 3.28.2, v1 to v5)
27
27
  are history.
@@ -40,7 +40,7 @@ Complete examples that bind live in `executable-example.md` (both compilers),
40
40
  (ESM v6; standalone tool and cratis 3.28.2 or later) and `generated-responses-example.md`
41
41
  (ESM v7; standalone tool 4.68.0 or later, and the cratis 3.53.1 bundle).
42
42
 
43
- ## Caller and compliance boundary (4.127.0)
43
+ ## Caller and compliance boundary (4.141.0)
44
44
 
45
45
  `$identity.id`/`.name`/`.userName` are aliases of the admitted
46
46
  `$context.identity` produces-mapping values. Authentication status, roles and
@@ -49,10 +49,14 @@ A top-level `identity` block alone is authoring metadata and does not block
49
49
  readiness. Executable reads of declared `$identity.<detail>` do (PLAY0268);
50
50
  `$context.identity` remains built-ins only. Purposes and event `subject` marks
51
51
  are metadata (PLAY0270), not source resolution, retention or subject propagation.
52
- Bare `pii`/`personal` and `secret` concepts, scopes and qualifiers still block
53
- binding. Legacy spellings compile with PLAY0565 information; duplicates warn
54
- PLAY0653. Never remove protection; see command-surface `references/compliance.md`.
55
- Authority: v4.127.0 `context.md`, `identity.md`, `concepts.md`, `events.md`, `purposes.md`.
52
+ Bare `pii`/`personal` and `secret` concepts, scopes and qualifiers bind as v13
53
+ on standalone 4.141.0; CLI 3.53.1's 4.137.0 bundle still refuses them. Enum/identity
54
+ compliance and events mixing protected values with explicit subject marks remain
55
+ refused; see command-surface `references/compliance.md` for the precise boundary.
56
+ Legacy spellings compile with PLAY0565 information; duplicates warn PLAY0653.
57
+ Never remove protection. Reference execution proves neither encryption nor erasure.
58
+ Authority: v4.141.0 `SemanticModelBinder.Compliance.cs`, `concepts.md`, `events.md`;
59
+ caller and purpose guidance retains v4.127.0 `context.md`, `identity.md`, `purposes.md`.
56
60
 
57
61
  ## Admitted on both compilers
58
62
 
@@ -209,7 +213,7 @@ bodies still leave their owner non-executable.
209
213
  | --- | --- | --- |
210
214
  | `Automation` or `Translate` slice, `reaction`, `capture`, `trigger`; `given clock`, `when clock`, `when trigger`, `when capture` | PLAY0268 | **cratis before 3.28.2 bundles only** (4.60.1); messages in `versions.md` |
211
215
  | Unquoted `import Other.Contract` | PLAY0268 | external contract import is not bound |
212
- | `pii` or `secret` on any concept (also alias/legacy markers) | PLAY0268 | Compliance requires portable data-subject semantics; scopes/qualifiers do not admit it. Secret provider mapping is `[Encrypted]` + `[NotAudited]`, not a bind/render claim |
216
+ | `pii` or `secret` on a concept | PLAY0268 | Blanket refusal on CLI 3.53.1's 4.137.0 bundle only. Standalone 4.141.0 admits v13 except enum/identity compliance and events mixing personal or explicitly subject-scoped secret values with explicit subject marks; see `compliance.md` in command-surface references |
213
217
  | `query` with a composite `by` block, or `by ... from` context-derived arguments | PLAY0268 | composite `by` blocks remain unadmitted (#599). An optional scalar snapshot lookup, an unfiltered list (`RM[]`) and a list narrowed by one caller-supplied `by` key bind, in their `observable` form too (since 4.105.0) |
214
218
  | `filter`, `scoped to`, `performer` queries | PLAY0268 | "uses delivery, filtering, scope, or implementation behavior outside the first ESM v1 vertical." `observable` is not the blocker: it goes in the return position (`=> observable RM[]`); as a body line it is PLAY0048 |
215
219
  | `contains` or `starts with` in conditions | PLAY0268 | equality and numeric ordering only |
@@ -251,8 +255,9 @@ bodies still leave their owner non-executable.
251
255
 
252
256
  Do not remove `pii`, `secret`, `authorize` or policies, list queries, automations or
253
257
  rules a domain needs just to make binding pass. Report `V3 blocked: <codes>` and record the
254
- slice in the gap list. A `pii` or `secret` marker blocks V3 and rendering, and
255
- either attribute on an identifier or typed destination is a source error
258
+ slice in the gap list. A `pii` or `secret` marker selects v13 on standalone
259
+ 4.141.0, but blocks binding on the pinned CLI and exceeds Stage 4.76.0's v12
260
+ ceiling. Either attribute on an identifier or typed destination is a source error
256
261
  PLAY0515 on the current compiler (including stream-id parts and route mapping
257
262
  sources). Chronicle also rejects `[PII]`/`[Encrypted]` on event-source identifiers
258
263
  (CHR0034/CHR0052). Keep surrogate identity and protected payload separate.
@@ -50,7 +50,7 @@ version; each construct it does not render refuses with its own code before any
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`) |
52
52
  | Numbers, case tables | whole numbers as `long` from ESM v8; case tables | out-of-`int` literals below v8 (`STAGE-ESM-031`) |
53
- | Generated values and responses (v7) | not rendered | `STAGE-ESM-028`/`-029` (Stage#175) |
53
+ | Generated values and responses (v7) | not rendered by Stage 4.73.1 (cli 3.53.1); rendered from standalone Stage 4.74.0 (UUID concepts, scalar and named responses) | `STAGE-ESM-028`/`-029` at 4.73.1 (Stage#175); `STAGE-ESM-038` for combinations the target cannot preserve |
54
54
  | Specifications | as in Stage's `admission.md` | `then no readmodel` (`-027`); an unauthenticated caller carrying roles or claims, `$context.occurred`-derived fixed values asserted (`-011`) |
55
55
  | v9 and v10 | reducer observer `from` filters | public events and event-target projections (`-032`); foreign origins and event-source captures (`-033`); directed Translate (`-024`); reaction `runsAs` (`-034`); reaction `from` filters (`-035`); per-production route overrides (`-036`) |
56
56
  | Evolved events | initial revisions only | `STAGE-ESM-026` (Stage#204) |
@@ -88,7 +88,10 @@ whole automation is hand-written (gap-fill).
88
88
  | Compliance | none | any `@pii` or `@sensitive` already fails binding (PLAY0268). The C# provider mapping (Stage v4.29.0, Stage#197) is `@pii` to `[PII]`, `@sensitive` to `[Encrypted]` + `[NotAudited]`, both to `[PII]` only |
89
89
 
90
90
  At standalone 4.127.0, compliance uses bare `pii`/`secret` (legacy markers are
91
- accepted with PLAY0565 information); either still refuses binding. Identity blocks,
91
+ accepted with PLAY0565 information); either still refuses binding on that compiler.
92
+ Standalone 4.141.0 admits concept compliance as v13 with narrower refusals
93
+ (command-surface `references/compliance.md`), but Stage 4.76.0 admits only through
94
+ v12 and the pinned CLI still bundles 4.137.0. Identity blocks,
92
95
  purposes and event `subject` are authoring metadata, not provider realization;
93
96
  executing identity detail reads still refuses PLAY0268. Current source/stream
94
97
  routes are admitted as v8, including composite ids, not the historical binding