@cratis/pi 7.31.0 → 7.32.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.
@@ -6,6 +6,7 @@
6
6
  ## Contents
7
7
 
8
8
  - Classify the value on its concept
9
+ - Recover classification from C# with Arc 22.70.0
9
10
  - Declare the use separately
10
11
  - Identify the person, not the stream
11
12
 
@@ -63,6 +64,45 @@ This mapping is not admission: either marker, including qualifiers and scopes,
63
64
  still blocks executable binding with PLAY0268. Subject lineage is a different
64
65
  role, described below.
65
66
 
67
+ ## Recover classification from C# with Arc 22.70.0
68
+
69
+ Reverse generation is not the C# provider mapping above. Source authority: Arc
70
+ `v22.70.0:Documentation/backend/csharp/generating-a-screenplay.md` (Operational
71
+ secrets), `Source/DotNET/Screenplay/Emission/Concepts/ConceptSyntaxBuilder.cs`
72
+ and `Source/DotNET/Screenplay/Analysis/Types/PersonalDataMarkings.cs`.
73
+ Check the generator package actually loaded; the CLI's bundle may be older.
74
+
75
+ - Both `[Encrypted]` and `[NotAudited]` must be on the concept to recover
76
+ `secret`. Partial or member-specific markings report SP0058 (Information),
77
+ without adding `secret`; existing `pii` remains.
78
+ - For `[Encrypted(EncryptionScope.Namespace)]` or Global plus `[NotAudited]`,
79
+ default output keeps bare `secret` and reports SP0061 (Information), naming
80
+ the unstated scope. It therefore implies Subject, not the source scope.
81
+ Set `ScreenplayOptions.AuthoringOnlyConstructs = true` (CLI adapter flag
82
+ `--authoring-only-constructs`) to state `secret scope namespace` or
83
+ `secret scope global` in the concept body. Subject stays implicit. Scope
84
+ is syntax-only: it raises no ESM version and grants no executable admission.
85
+ `pii secret` gets no scope because the providers ignore it.
86
+ - A property or positional constructor parameter marked `[PII]` on a non-concept
87
+ type reports SP0062 (Information); the marking is not stated and no concept
88
+ is invented. Preserve the source protection, record the loss, and introduce a
89
+ personal-data concept in source or the intentional candidate.
90
+ - Member `[PII]` promotes an existing concept to `pii` across all its uses.
91
+ SP0063 (Information) lists unmarked analyzed uses when the concept itself
92
+ lacks `[PII]`. Review that widening: explicitly classify the concept if the
93
+ meaning is shared, or separate personal and nonpersonal meanings into distinct
94
+ concepts. No SP0063 is reported if the concept is marked or all analyzed uses
95
+ are marked. Never remove protection merely to silence the diagnostic.
96
+ - Protected identity concepts keep their identities/routes but lose their
97
+ annotations with SP0059 (Information, now worded `pii/secret`); record the
98
+ protection loss and use a surrogate identity, not a declassified payload value.
99
+
100
+ Reasons, special/criminal qualifiers and purposes are not inferred. Changing
101
+ scope for persisted events still needs a new generation. Every diagnostic is a
102
+ loss or review item, including Information; see legacy-extraction
103
+ [generate notes](../../cratis-screenplay-legacy-extraction/references/generate-notes.md)
104
+ for the self-check contract and compiler-upgrade handling.
105
+
66
106
  ## Declare the use separately
67
107
 
68
108
  ```screenplay
@@ -41,6 +41,7 @@ v19.32.0): `cratis-screenplay-toolchain` `references/versions.md`. Checked at th
41
41
  | --- | --- |
42
42
  | `generate` options, no default-file certainty (stdout when `--file` is absent), spec-project exclusion by name, `CLI0005/0009/0014-0017` | cli `v3.28.2:Source/Cli/Commands/Screenplay/{GenerateScreenplayCommand,GenerateScreenplaySettings,ScreenplayProjectSelection,ScreenplayDiagnosticCodes}.cs` |
43
43
  | `SP0016` (rule in code, computed message, `When`/`Unless` written as unconditional), `SP0024` (source did not compile) | Arc `v22.50.5:Source/DotNET/Screenplay/ScreenplayDiagnosticCodes.cs`, `Documentation/backend/csharp/generating-a-screenplay.md` |
44
+ | Non-default secret scope in authoring mode, SP0061–SP0063, self-check contract on compiler upgrades | Arc `v22.70.0:Documentation/backend/csharp/generating-a-screenplay.md`, `Source/DotNET/Screenplay/Verification/ExpectedBindingDiagnostics.cs`; `references/generate-notes.md` |
44
45
  | `prologue start` is an interactive wizard that writes `cratis-prologue.json`; `interpret` resolves its language model from the Prologue file, then the global CLI configuration (cli#241 open) | cli `v3.28.2:Source/Cli/Commands/Prologue/{StartPrologueCommand,LlmOptionsResolver}.cs`, `Documentation/reference/prologue.md` |
45
46
  | Extractor effects (CDC enable, publication and replication slot), POST/PUT/DELETE only, 2 s correlation window, interpret payload (uncapped model outline and names, observed lists capped at 50, schema tables capped per schema observation), existing slot/publication reused; cleanup missing (Prologue#37) | Prologue `ad4bbe7:Source/Extractor/Sources/**`, `Source/Configuration/*`, `Source/Interpretation/EvidenceFormatter.cs` |
46
47
  | `then error`, `then denied`, `unique ... released by` | Screenplay `v4.66.0:Documentation/screenplay/{specifications,constraints}.md` |
@@ -154,8 +155,9 @@ chain per slice before handoff (evidence template); never manufacture references
154
155
  `unique ... on <every event that sets it>` with `released by`
155
156
  (`references/rule-modeling.md`);
156
157
  - preserve personal-data/secret protection and authorization found in code,
157
- using bare `pii` / `secret` (4.127.0); deprecated marker repairs keep legal
158
- notes intact, never guess a purpose or basis. Derive purpose/use/retention
158
+ using `pii` / `secret` and evidenced secret scope; Arc 22.70.0 recovery
159
+ losses (SP0061–SP0063) need review (`references/generate-notes.md`).
160
+ Deprecated marker repairs keep legal notes intact, never guess a purpose or basis. Derive purpose/use/retention
159
161
  declarations only from evidence or expert decisions; run `--check purposes`
160
162
  and inspect the processing record as prompts, not a legal verdict. Keep
161
163
  hand-joined legacy ids scalar; never infer composite parts by splitting text.
@@ -7,6 +7,8 @@
7
7
  - Coverage (what a provider reads)
8
8
  - Diagnostics are the loss list
9
9
  - Arc recovery and authoring-only options
10
+ - Arc 22.70.0 compliance recovery
11
+ - Generated-document self-check on compiler upgrades
10
12
  - Reading the output cheaply
11
13
 
12
14
  Flags verified with `cratis screenplay generate --help` on the version recorded in
@@ -17,9 +19,16 @@ cratis-screenplay-toolchain `references/versions.md`; behaviour from the cratis
17
19
  Screenplay.CritterStack `v0.24.0`. Version-specific capability facts belong in cratis-screenplay-toolchain
18
20
  `references/versions.md`.
19
21
 
20
- Current CLI is 3.50.0, with Screenplay 4.131.0 / Stage 4.67.0 /
21
- Arc.Screenplay 22.54.0 / Chronicle 19.32.0 / Fundamentals 7.22.8
22
- (`references/versions.md` in the toolchain; standalone Screenplay is 4.135.0).
22
+ For the current standalone compiler and CLI bundle, use the toolchain's
23
+ [version table](../../cratis-screenplay-toolchain/references/versions.md).
24
+ The compliance and self-check sections below are source-checked at Arc 22.70.0
25
+ (`Documentation/backend/csharp/generating-a-screenplay.md`,
26
+ `Analysis/Types/{ConceptRegistry,PersonalDataMarkings,TypesTheDocumentCannotName}.cs`,
27
+ `Emission/Concepts/ConceptSyntaxBuilder.cs`, `Emission/ProtectedIdentityAnnotations.cs`
28
+ and `Verification/ExpectedBindingDiagnostics.cs` under `Source/DotNET/Screenplay/`).
29
+ They require that generator release, not an older bundled adapter;
30
+ a standalone compiler upgrade does not upgrade the generator.
31
+
23
32
  Option/admission evidence checked at CLI 3.41.0: released
24
33
  `GenerateScreenplaySettings.cs`, `ArcScreenplayGeneration.cs`, v7 planning specs
25
34
  and `Documentation/reference/screenplay.md`; older diagnostic probes below keep
@@ -107,6 +116,65 @@ Handler/reaction bodies, unresolved conditions and unproven origins still need
107
116
  source review. Do not infer generation/evolution/absence-assertion coverage from
108
117
  a package upgrade; read diagnostics and reconcile each recovered scenario.
109
118
 
119
+ ## Arc 22.70.0 compliance recovery
120
+
121
+ A concept with both `[Encrypted]` and `[NotAudited]` becomes `secret`.
122
+ Encryption or audit suppression alone, or only on a member, does not establish
123
+ that concept-wide contract: SP0058 (Information) reports the partial marking
124
+ without adding `secret`; an existing `pii` classification remains.
125
+
126
+ - Subject scope, omitted or explicit, stays bare `secret`.
127
+ - `[Encrypted(EncryptionScope.Namespace)]` plus `[NotAudited]` on the concept
128
+ emits bare `secret` by default and SP0061 (Information) names the unstated
129
+ `namespace` scope: the document instead implies Subject scope. Global behaves
130
+ the same way. Set `ScreenplayOptions.AuthoringOnlyConstructs = true` (CLI
131
+ adapter option `--authoring-only-constructs`) to emit `secret scope namespace`
132
+ or `secret scope global` in the concept body. Scope is syntax-only and does
133
+ not raise the ESM version; it does not make protected concepts executable.
134
+ - A concept also marked `[PII]` becomes `pii secret`, with no emitted scope:
135
+ the C# providers render only `[PII]`; Chronicle rejects `[PII]` combined with
136
+ `[Encrypted]`. Do not add a scope the provider ignores.
137
+
138
+ Member `[PII]` is read from properties and matching positional constructor
139
+ parameters. Two losses that previously needed manual detection now have
140
+ Information diagnostics:
141
+
142
+ | Code | What the document says or loses | Resolve in source or the intentional candidate |
143
+ | --- | --- | --- |
144
+ | SP0062 | `[PII]` on a non-concept member (for example, a String) is not stated; the diagnostic names `Type.Member`. No concept is invented. | Introduce a personal-data concept with evidence-backed meaning; keep the original protection and record the lost marking until resolved. |
145
+ | SP0063 | A member marking promotes its concept to `pii` everywhere; the diagnostic lists unmarked analyzed uses that acquire that classification. | Review every listed use. If all carry personal data, make the concept-wide classification explicit; if meanings differ, separate the concepts rather than remove `pii`. |
146
+
147
+ SP0063 is absent when the concept itself has `[PII]` or every analyzed use is
148
+ marked. Its list covers analyzed uses, not proof of all runtime use sites.
149
+ Reasons, special/criminal qualifiers and processing purposes are not inferred.
150
+
151
+ SP0059 (Information) reports that an identity concept's `pii/secret` annotations
152
+ were left off because Screenplay rejects protected identifiers, destinations and
153
+ stream ids (PLAY0515). The identity/route is retained, not the protection. Record
154
+ that loss and design a surrogate identity; never treat the generated omission as
155
+ authority to remove source protection. SP0058/SP0059 now say `secret` and
156
+ `pii/secret`, not the deprecated `sensitive`/`@pii` vocabulary.
157
+ See command-surface [compliance](../../cratis-screenplay-command-surface/references/compliance.md)
158
+ for classification and persisted-event scope changes.
159
+
160
+ ## Generated-document self-check on compiler upgrades
161
+
162
+ Arc compiles and binds its printed document. `ExpectedBindingDiagnostics` tolerates
163
+ only exact known admission-limit messages (PLAY0268) and the permitted legacy
164
+ consistency messages (PLAY0271), not every diagnostic with those codes.
165
+ The loaded compiler's contract must list the code as neither retired nor reserved
166
+ and include Error among its supported severities. A missing, retired, reserved or
167
+ non-error-only code loses the exemption even if an old message still matches.
168
+ Changed or unknown messages also fail closed.
169
+
170
+ After upgrading Screenplay, rerun generation and inspect the self-check instead
171
+ of carrying forward an old waiver. Unexpected binding errors become SP0056
172
+ (Warning for standalone generation, Information for embedded generation); Arc's
173
+ end-to-end gate rejects any SP0056 regardless of severity. Resolve a changed
174
+ admission contract or report a generator defect; do not strip protection or widen
175
+ the exemption. This check is distinct from a clean source-validation result and
176
+ does not prove the model renders or executes.
177
+
110
178
  ## Reading the output cheaply
111
179
  1. V1 on `.ai-work/screenplay/<model-slug>/legacy/static` (folder mode) with the tool and
112
180
  command `cratis-screenplay-toolchain` selects, named with its version; record counts, do
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cratis/pi",
3
- "version": "7.31.0",
3
+ "version": "7.32.0",
4
4
  "description": "Configuration-aware Cratis AI integration for Pi",
5
5
  "type": "module",
6
6
  "files": [