@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.
- package/package/corpus/skills/cratis-screenplay-command-surface/references/compliance.md +40 -0
- package/package/corpus/skills/cratis-screenplay-legacy-extraction/SKILL.md +4 -2
- package/package/corpus/skills/cratis-screenplay-legacy-extraction/references/generate-notes.md +71 -3
- package/package.json +1 -1
|
@@ -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
|
|
158
|
-
|
|
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.
|
package/package/corpus/skills/cratis-screenplay-legacy-extraction/references/generate-notes.md
CHANGED
|
@@ -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
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|