@cratis/pi 7.37.0 → 7.38.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/harnesses/copilot/instructions/ai-distribution.instructions.md +109 -0
- package/package/corpus/harnesses/copilot/instructions/application-profile.instructions.md +81 -0
- package/package/corpus/harnesses/copilot/instructions/capability-is-not-authority.instructions.md +45 -0
- package/package/corpus/harnesses/copilot/instructions/code-quality.csharp.instructions.md +92 -0
- package/package/corpus/harnesses/copilot/instructions/code-quality.instructions.md +83 -0
- package/package/corpus/harnesses/copilot/instructions/code-quality.typescript.instructions.md +90 -0
- package/package/corpus/harnesses/copilot/instructions/components.instructions.md +300 -0
- package/package/corpus/harnesses/copilot/instructions/concepts.instructions.md +138 -0
- package/package/corpus/harnesses/copilot/instructions/cratis-folder-is-configuration.instructions.md +29 -0
- package/package/corpus/harnesses/copilot/instructions/csharp.instructions.md +357 -0
- package/package/corpus/harnesses/copilot/instructions/dialogs.instructions.md +278 -0
- package/package/corpus/harnesses/copilot/instructions/documentation-structure-and-formatting.instructions.md +162 -0
- package/package/corpus/harnesses/copilot/instructions/documentation.instructions.md +90 -0
- package/package/corpus/harnesses/copilot/instructions/editing-cratis-docs.instructions.md +74 -0
- package/package/corpus/harnesses/copilot/instructions/efcore.instructions.md +84 -0
- package/package/corpus/harnesses/copilot/instructions/efcore.specs.instructions.md +45 -0
- package/package/corpus/harnesses/copilot/instructions/elixir.instructions.md +50 -0
- package/package/corpus/harnesses/copilot/instructions/exit-codes-and-wrappers.instructions.md +34 -0
- package/package/corpus/harnesses/copilot/instructions/framework.instructions.md +55 -0
- package/package/corpus/harnesses/copilot/instructions/frontend-quality.instructions.md +60 -0
- package/package/corpus/harnesses/copilot/instructions/frontend-testing.instructions.md +127 -0
- package/package/corpus/harnesses/copilot/instructions/git-commits.instructions.md +139 -0
- package/package/corpus/harnesses/copilot/instructions/github-actions.instructions.md +87 -0
- package/package/corpus/harnesses/copilot/instructions/glossary.instructions.md +63 -0
- package/package/corpus/harnesses/copilot/instructions/go-engineering.instructions.md +61 -0
- package/package/corpus/harnesses/copilot/instructions/go.instructions.md +116 -0
- package/package/corpus/harnesses/copilot/instructions/guards-and-fuses.instructions.md +61 -0
- package/package/corpus/harnesses/copilot/instructions/java.instructions.md +138 -0
- package/package/corpus/harnesses/copilot/instructions/kotlin.instructions.md +175 -0
- package/package/corpus/harnesses/copilot/instructions/local-work-artifacts.instructions.md +56 -0
- package/package/corpus/harnesses/copilot/instructions/new-repository-intake.instructions.md +35 -0
- package/package/corpus/harnesses/copilot/instructions/orleans.instructions.md +97 -0
- package/package/corpus/harnesses/copilot/instructions/profiles.instructions.md +403 -0
- package/package/corpus/harnesses/copilot/instructions/pull-requests.instructions.md +176 -0
- package/package/corpus/harnesses/copilot/instructions/react.instructions.md +203 -0
- package/package/corpus/harnesses/copilot/instructions/reactors.instructions.md +336 -0
- package/package/corpus/harnesses/copilot/instructions/rtk.instructions.md +48 -0
- package/package/corpus/harnesses/copilot/instructions/specs.csharp.instructions.md +147 -0
- package/package/corpus/harnesses/copilot/instructions/specs.instructions.md +133 -0
- package/package/corpus/harnesses/copilot/instructions/specs.scenarios.csharp.instructions.md +281 -0
- package/package/corpus/harnesses/copilot/instructions/specs.typescript.instructions.md +141 -0
- package/package/corpus/harnesses/copilot/instructions/storybook.instructions.md +85 -0
- package/package/corpus/harnesses/copilot/instructions/typescript.instructions.md +151 -0
- package/package/corpus/harnesses/copilot/instructions/verification-discipline.instructions.md +27 -0
- package/package/corpus/harnesses/copilot/instructions/vertical-slices.instructions.md +414 -0
- package/package/corpus/harnesses/copilot/instructions/web-fetching.instructions.md +12 -0
- package/package/corpus/harnesses/copilot/instructions/writing-correct-examples.instructions.md +57 -0
- package/package/corpus/harnesses/copilot/instructions/writing-cratis-docs.instructions.md +72 -0
- package/package/corpus/product-sync.json +2 -2
- package/package/corpus/skills/cratis-screenplay-discovery/SKILL.md +11 -6
- package/package/corpus/skills/cratis-screenplay-discovery/references/facilitation.md +9 -5
- package/package/corpus/skills/cratis-screenplay-discovery/references/human-workshop.md +1 -1
- package/package/corpus/skills/cratis-screenplay-discovery/references/plotting-and-handoff.md +28 -4
- package/package/corpus/skills/cratis-screenplay-discovery/references/storming-loop.md +2 -1
- package/package/corpus/skills/cratis-screenplay-discovery/verification.json +5 -0
- package/package/corpus/skills/cratis-screenplay-model-authoring/SKILL.md +23 -29
- package/package/corpus/skills/cratis-screenplay-model-authoring/references/mcp-loop.md +15 -1
- package/package/corpus/skills/cratis-screenplay-model-authoring/references/model-notes.md +208 -0
- package/package/corpus/skills/cratis-screenplay-model-authoring/verification.json +20 -1
- package/package/corpus/skills/cratis-screenplay-model-review/SKILL.md +19 -36
- package/package/corpus/skills/cratis-screenplay-model-review/references/report-template.md +26 -0
- package/package/corpus/skills/cratis-screenplay-model-review/verification.json +7 -0
- package/package/corpus/skills/cratis-screenplay-modeling-lifecycle/SKILL.md +14 -16
- package/package/corpus/skills/cratis-screenplay-modeling-lifecycle/references/core-rules-digest.md +8 -3
- package/package/corpus/skills/cratis-screenplay-modeling-lifecycle/references/handoff-template.md +5 -2
- package/package/corpus/skills/cratis-screenplay-modeling-lifecycle/references/intake.md +21 -0
- package/package/corpus/skills/cratis-screenplay-modeling-lifecycle/references/reasoning-notes.md +10 -6
- package/package/corpus/skills/cratis-screenplay-modeling-lifecycle/references/stop-or-assume.md +32 -1
- package/package/corpus/skills/cratis-screenplay-modeling-lifecycle/references/worked-example.md +5 -2
- package/package/corpus/skills/cratis-screenplay-modeling-lifecycle/verification.json +5 -0
- package/package/corpus/skills/cratis-screenplay-toolchain/SKILL.md +4 -0
- package/package/corpus/skills/cratis-screenplay-toolchain/references/screenplay-contract.json +1716 -183
- package/package/corpus/skills/cratis-screenplay-toolchain/references/screenplay-contract.version +1 -1
- package/package/corpus/skills/cratis-screenplay-toolchain/references/versions.md +40 -4
- package/package/corpus/skills/cratis-screenplay-toolchain/verification.json +6 -0
- package/package.json +1 -1
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
- Finding fields
|
|
6
6
|
- Root causes
|
|
7
7
|
- Defect or business question?
|
|
8
|
+
- Question notes
|
|
8
9
|
- Verdict rules
|
|
9
10
|
- Findings across a re-review
|
|
10
11
|
- Wording
|
|
@@ -143,6 +144,31 @@ constraint or projection).
|
|
|
143
144
|
- An open question is genuinely unanswered. A refusal the business already decided is a
|
|
144
145
|
`then error` or `then denied` specification, not a question (E9).
|
|
145
146
|
|
|
147
|
+
## Question notes
|
|
148
|
+
|
|
149
|
+
On Screenplay 4.144.0, inspect `list-model-notes` with scope and `state: "all"`,
|
|
150
|
+
including `view: "findings"`. `model-note.open-question` is an info MCP/CLI-only
|
|
151
|
+
finding, no PLAY code and no V1 failure. List orphaned questions explicitly;
|
|
152
|
+
review `orphanedNotes` on source proposals, and treat null/unreadable as unknown.
|
|
153
|
+
A read-only reviewer never writes notes: return a `question` note request for the
|
|
154
|
+
owning session, anchored to the element with consequence and assumption. Existing
|
|
155
|
+
questions should be cited by note ID; new questions must not live only in chat,
|
|
156
|
+
session state or `description` text. Never put secrets or personal data in note
|
|
157
|
+
text, authors, references or resolutions.
|
|
158
|
+
|
|
159
|
+
Read model-authoring [model notes](../../cratis-screenplay-model-authoring/references/model-notes.md)
|
|
160
|
+
when preparing that request or judging resolution evidence. Cite the project's
|
|
161
|
+
own decisions with `refs: [{ "id": "D123" }]`; the owner resolves with
|
|
162
|
+
`by: "external-decision"` and required `ref: { "id": "D123" }` when D123 answers
|
|
163
|
+
it. Verify the answer became a specification, a description or a project-owned
|
|
164
|
+
decision record; a resolved note is not behavioral proof. Ask the owner to reanchor
|
|
165
|
+
or resolve affected notes before source apply; resolution alone leaves an orphan.
|
|
166
|
+
|
|
167
|
+
The optional `--open-questions fail` gate is in standalone Screenplay 4.144.0,
|
|
168
|
+
not Cratis CLI 3.53.1. Report it separately from V1–V5. Evidence: Screenplay
|
|
169
|
+
`v4.144.0:Documentation/screenplay/model-notes.md:12-77,93-121`,
|
|
170
|
+
`Documentation/screenplay/mcp/reference.md:457-520`; source lines in the linked guide.
|
|
171
|
+
|
|
146
172
|
## Verdict rules
|
|
147
173
|
- **FAIL**: any critical finding, or a verdict line the mode requires fails.
|
|
148
174
|
- **PASS WITH WARNINGS**: no critical; one or more major or minor findings, or open business
|
|
@@ -5,6 +5,13 @@
|
|
|
5
5
|
"assertions": [
|
|
6
6
|
{ "kind": "skill-contains", "value": "all *known* producers", "file": "references/public-keys-and-routes.md" },
|
|
7
7
|
{ "kind": "play-compiles" },
|
|
8
|
+
{ "kind": "skill-contains", "value": "A read-only reviewer returns `question` note requests" },
|
|
9
|
+
{ "kind": "skill-contains", "value": "`state: \"all\"`", "file": "references/report-template.md" },
|
|
10
|
+
{ "kind": "skill-contains", "value": "`model-note.open-question`", "file": "references/report-template.md" },
|
|
11
|
+
{ "kind": "skill-contains", "value": "`orphanedNotes`", "file": "references/report-template.md" },
|
|
12
|
+
{ "kind": "skill-contains", "value": "`by: \"external-decision\"`", "file": "references/report-template.md" },
|
|
13
|
+
{ "kind": "skill-contains", "value": "Verify the answer became a specification", "file": "references/report-template.md" },
|
|
14
|
+
{ "kind": "skill-contains", "value": "Never put secrets or personal data", "file": "references/report-template.md" },
|
|
8
15
|
{ "kind": "skill-contains", "value": "PASS WITH WARNINGS" },
|
|
9
16
|
{ "kind": "skill-contains", "value": "Every finding is pinned to one declaration" },
|
|
10
17
|
{ "kind": "skill-contains", "value": "edit request" },
|
|
@@ -64,10 +64,15 @@ STATE.md); a real trade-off is flagged to the user, never resolved by cutting th
|
|
|
64
64
|
(`references/completeness-self-check.md`).
|
|
65
65
|
|
|
66
66
|
Three unresolved things, never conflated: an **open question** (business meaning nobody decided:
|
|
67
|
-
record it
|
|
68
|
-
|
|
67
|
+
record it as a `question` note anchored to the element, with the assumption in use;
|
|
68
|
+
not just chat, STATE.md or `description` text; it closes when answered, never by deletion),
|
|
69
|
+
a **decided rejection** (a known refusal: a specification, `then denied` or
|
|
69
70
|
`then error`, never a note) and a **contradiction** (model, specs and an agreed fact disagree:
|
|
70
71
|
stop that scope and report). Finding tiers: `references/principles.md`.
|
|
72
|
+
Read [question notes](references/stop-or-assume.md#durable-question-notes) when
|
|
73
|
+
recording or answering an open question: cite decisions in `refs`, resolve with
|
|
74
|
+
`by: "external-decision"`, then realize the answer. Never put secrets or personal
|
|
75
|
+
data in note text.
|
|
71
76
|
|
|
72
77
|
## Modes (state the mode in the first output line)
|
|
73
78
|
| Mode | Use | Done when |
|
|
@@ -108,18 +113,9 @@ After each phase write a phase summary (done, carry-forward, open questions) to
|
|
|
108
113
|
the next skill loads (`references/phases.md`). Legacy: `cratis-screenplay-legacy-extraction`.
|
|
109
114
|
|
|
110
115
|
## Interview phase (P0)
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
2. **Source**: requirements, ideas, an existing system (legacy entry), a `.play` (change entry)?
|
|
115
|
-
3. **Goal**: learning, documentation, validation, executable behavior, generated code (the mode)?
|
|
116
|
-
4. **Constraints**: outside systems, data sensitivity, who can answer, target stack.
|
|
117
|
-
5. **Starting point**: from scratch, or which phase outputs exist?
|
|
118
|
-
|
|
119
|
-
Confirm in one sentence only when something was inferred: "So we model <domain>, goal <goal>,
|
|
120
|
-
mode <mode>, starting at <phase>. Right?" Unattended: assume visibly and record asked versus
|
|
121
|
-
assumed in STATE.md (`references/stop-or-assume.md`). Mid-workflow entry: ask which phases are
|
|
122
|
-
done; never rerun a completed one, start at the first incomplete.
|
|
116
|
+
Skip if domain, source, goal and constraints are stated. Otherwise read
|
|
117
|
+
[intake](references/intake.md) when entering P0: ask only for missing context,
|
|
118
|
+
assume visibly unattended and never rerun completed phases.
|
|
123
119
|
|
|
124
120
|
## Run protocol: stop or assume
|
|
125
121
|
1. **Start**: read STATE.md; check the source identity; load the phase skill before authoring
|
|
@@ -214,7 +210,7 @@ labelled as such. The user decides whether it is enough
|
|
|
214
210
|
|
|
215
211
|
Construct mechanics stay in the `cratis-screenplay-*` construct skills; term clashes:
|
|
216
212
|
`references/vocabulary-map.md`; worked example: `references/worked-example.md`; done checklist: `references/phases.md`.
|
|
217
|
-
Read `references/worked-example.md` when needing
|
|
213
|
+
Read `references/worked-example.md` when needing reasoning, constraint and rejection examples.
|
|
218
214
|
Read `references/core-rules-digest.md` when you need the one-page card of element names, causality, open-question-versus-decided-failure and the anti-patterns to reject early.
|
|
219
215
|
|
|
220
216
|
## Gate
|
|
@@ -223,7 +219,9 @@ address and assumption; every decided rejection is a specification; no protectio
|
|
|
223
219
|
the packet opens with `Outcome:`; STATE.md is current.
|
|
224
220
|
|
|
225
221
|
## Verified product sources
|
|
226
|
-
|
|
222
|
+
Model notes: Screenplay `v4.144.0:Documentation/screenplay/model-notes.md:12-77`,
|
|
223
|
+
`decisions/0045-model-notes-sidecar.md:40-79`; exact tool sources in model-authoring
|
|
224
|
+
`references/model-notes.md`. Full pin table: `cratis-screenplay-toolchain/references/versions.md`. Read `cratis-screenplay-toolchain/references/versions.md` when selecting or reverifying tool versions. Current pins (Stage 4.73.1, cratis CLI 3.53.1 and the rest) are in that file. Older source reads used here: Screenplay
|
|
227
225
|
`v4.66.0` (`c89198b`): `Source/DotNET/Tool/Program.cs` (`--warnaserror`, folder mode),
|
|
228
226
|
`Source/DotNET/Screenplay/Semantics/SemanticModelBinder.cs:209-216` (personas are report-only),
|
|
229
227
|
`Documentation/screenplay/{constraints,specifications}.md`, `mcp/reference.md` (`modelRevision`);
|
package/package/corpus/skills/cratis-screenplay-modeling-lifecycle/references/core-rules-digest.md
CHANGED
|
@@ -77,8 +77,13 @@ matters, a destination. A field with no origin is a gap to resolve, not a detail
|
|
|
77
77
|
See `cratis-screenplay-slice-design` `references/field-lineage.md`.
|
|
78
78
|
|
|
79
79
|
## Open question versus decided failure
|
|
80
|
-
- **Open question.** Genuinely undecided.
|
|
81
|
-
|
|
80
|
+
- **Open question.** Genuinely undecided. Record an anchored `question` note in
|
|
81
|
+
committed `.screenplay/notes.json`; STATE.md/reports carry its note ID and
|
|
82
|
+
assumption. Not only chat or `description` text. Resolving means answering:
|
|
83
|
+
cite project decisions in `refs` and resolve by `external-decision` when they
|
|
84
|
+
supply the answer, then realize it as a specification, description or decision
|
|
85
|
+
record. Read `stop-or-assume.md` "Durable question notes" when doing this.
|
|
86
|
+
Never put secrets or personal data in notes.
|
|
82
87
|
- **Decided failure.** A rejection or error whose behavior is already decided ("payment fails,
|
|
83
88
|
refuse, no event"). Model it as a `specification` with `then error` or `then denied`. It is
|
|
84
89
|
permanent specified behavior, not a note waiting on an answer.
|
|
@@ -125,7 +130,7 @@ for modelers. The full signal, consequence and fix per shape is in
|
|
|
125
130
|
- [ ] Every process starts at a screen or form action, a reaction, a clock or application trigger, or a capture.
|
|
126
131
|
- [ ] No two state changes are chained without a trigger between them.
|
|
127
132
|
- [ ] Every persona has a Cannot line backed by a gate and a denial specification, or a recorded gap.
|
|
128
|
-
- [ ] Every decided failure is a specification; every open question is in session state.
|
|
133
|
+
- [ ] Every decided failure is a specification; every open question is an anchored note with its ID in session state.
|
|
129
134
|
|
|
130
135
|
This is the fast pass; the full audit is `cratis-screenplay-model-review`
|
|
131
136
|
`references/checklist.md`, and the closing quality checklist is in `references/phases.md`.
|
package/package/corpus/skills/cratis-screenplay-modeling-lifecycle/references/handoff-template.md
CHANGED
|
@@ -48,7 +48,7 @@ V5 delivery: ...
|
|
|
48
48
|
- <phase>: <skip condition met>
|
|
49
49
|
|
|
50
50
|
## Open questions (business)
|
|
51
|
-
- Q3 <address>: <question> - matters because <...> - assumption in use: <...> | blocked scope
|
|
51
|
+
- Q3 [<note_id>] <address>: <question> - matters because <...> - assumption in use: <...> | blocked scope
|
|
52
52
|
|
|
53
53
|
## Capability and tool-version gaps
|
|
54
54
|
- <construct> blocked in <mode> (<code>) - kept in model; route: <fallback or issue>
|
|
@@ -123,7 +123,10 @@ Expected impact: diagnostics <...>; identity <preserved via rename or pin>; spec
|
|
|
123
123
|
## 4. Cold-readable questions
|
|
124
124
|
A question sent to a person is anchored to an address and understandable without opening the
|
|
125
125
|
model: `Qn <address>: <gap> - matters because <consequence> - <assumption in use>`. Put one
|
|
126
|
-
question per line; group by address.
|
|
126
|
+
question per line; group by address. These packet rows point to committed `question`
|
|
127
|
+
notes, not a competing question register. Include the returned note ID; if note
|
|
128
|
+
tools are unavailable, explicitly return a note request to the owning session.
|
|
129
|
+
Read `stop-or-assume.md` "Durable question notes" when recording or resolving one.
|
|
127
130
|
|
|
128
131
|
## 5. Who records the model used
|
|
129
132
|
Each agent writes the model it ran on into the packet when the harness exposes it, else
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<!-- Copyright (c) Cratis. All rights reserved. -->
|
|
2
|
+
<!-- Licensed under the MIT license. See LICENSE file in the project root for full license information. -->
|
|
3
|
+
|
|
4
|
+
# Interview phase (P0)
|
|
5
|
+
|
|
6
|
+
**Skip if** the request already states the domain, the source, the goal and the constraints.
|
|
7
|
+
Otherwise ask only what is missing:
|
|
8
|
+
1. **Domain**: what business process, in two or three sentences?
|
|
9
|
+
2. **Source**: requirements, ideas, an existing system (legacy entry), a `.play` (change entry)?
|
|
10
|
+
3. **Goal**: learning, documentation, validation, executable behavior, generated code (the mode)?
|
|
11
|
+
4. **Constraints**: outside systems, data sensitivity, who can answer, target stack.
|
|
12
|
+
5. **Starting point**: from scratch, or which phase outputs exist?
|
|
13
|
+
|
|
14
|
+
Confirm in one sentence only when something was inferred: "So we model <domain>, goal <goal>,
|
|
15
|
+
mode <mode>, starting at <phase>. Right?" Unattended: assume visibly and record asked versus
|
|
16
|
+
assumed in STATE.md (`stop-or-assume.md`). Mid-workflow entry: ask which phases are
|
|
17
|
+
done; never rerun a completed one, start at the first incomplete.
|
|
18
|
+
|
|
19
|
+
Open business questions become anchored `question` notes, with their note IDs in
|
|
20
|
+
STATE.md. Read [durable questions](stop-or-assume.md#durable-question-notes) when
|
|
21
|
+
recording an assumption or awaiting an answer.
|
package/package/corpus/skills/cratis-screenplay-modeling-lifecycle/references/reasoning-notes.md
CHANGED
|
@@ -19,7 +19,8 @@ comments (Stage#178 closed): model the rule first, never treat prose as enforcem
|
|
|
19
19
|
|
|
20
20
|
Cover, briefly and only where real:
|
|
21
21
|
1. Scope: the business process and the identities its streams are keyed by.
|
|
22
|
-
2.
|
|
22
|
+
2. Working assumptions beyond the brief and why, linked to an anchored `question`
|
|
23
|
+
note when unsettled; STATE.md carries the note ID.
|
|
23
24
|
3. Rules kept as constraints or specifications rather than events, so a missing event is not read
|
|
24
25
|
as an oversight; state-dependent rules marked NOT enforced in the model today, with the named
|
|
25
26
|
target enforcement.
|
|
@@ -28,17 +29,20 @@ Cover, briefly and only where real:
|
|
|
28
29
|
deliberate omission ("this view drops cancelled bookings").
|
|
29
30
|
6. Integration and capability gaps, each substantive one (outside facts, cross-feature or
|
|
30
31
|
cross-module dependencies, mode gaps) as: the finding, the viable resolutions, and the
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
anchored question note ID or project-owned decision that records the choice,
|
|
33
|
+
so documentation and the question agree. Use `refs` for decision identifiers;
|
|
34
|
+
the question itself is not tracked in prose.
|
|
33
35
|
7. A closing line for a feature with real decisions: what is covered (declaration kinds and
|
|
34
36
|
the specification matrix in words, not a counter that goes stale). Review results and
|
|
35
37
|
verdicts are never written into documentation (it is authored before review and would change
|
|
36
38
|
the reviewed source identity); they live in STATE.md and the packet.
|
|
37
39
|
|
|
38
40
|
Write for the next person or session who opens the model cold, not for whoever just built it.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
41
|
+
At any phase, record unresolved assumptions as `question` model notes; use
|
|
42
|
+
`documentation` for settled alternatives or non-obvious constraints, never routine
|
|
43
|
+
step narration. Read `stop-or-assume.md` "Durable question notes" when using refs,
|
|
44
|
+
resolving by external decisions or realizing an answer. Never put secrets or
|
|
45
|
+
personal data in note text. Complete the feature's reasoning at the end of P3.
|
|
42
46
|
If a feature's story is genuinely simple, say so briefly rather than padding; where real
|
|
43
47
|
decisions sit behind it, documentation preserves why they were made.
|
|
44
48
|
|
package/package/corpus/skills/cratis-screenplay-modeling-lifecycle/references/stop-or-assume.md
CHANGED
|
@@ -28,6 +28,35 @@ user can accept, and approvals not yet given always stop.
|
|
|
28
28
|
- One closed outcome per run. A run that neither progressed nor closed is a failure to report:
|
|
29
29
|
say what blocked it and which question would unblock it.
|
|
30
30
|
|
|
31
|
+
## Durable question notes
|
|
32
|
+
|
|
33
|
+
Record each open modeling choice as a `question` note on its element in committed
|
|
34
|
+
`.screenplay/notes.json`, not only chat/STATE.md or `description` text. Include the
|
|
35
|
+
question, consequence and assumption in use (or blocked scope). Keep its returned
|
|
36
|
+
note ID and address in STATE.md/packets; before an element exists, anchor to the
|
|
37
|
+
application or nearest identified container and name the intended element in text.
|
|
38
|
+
Never put secrets or personal data in note text, authors, refs or resolutions.
|
|
39
|
+
|
|
40
|
+
Read model-authoring [model notes](../../cratis-screenplay-model-authoring/references/model-notes.md)
|
|
41
|
+
when recording or answering questions: discover tools, list with pinned notes
|
|
42
|
+
revision, `propose-model-notes`, review `read-proposal view=notes`, then authorized
|
|
43
|
+
`apply`. If the installed bundle lacks notes, report the capability gap and carry
|
|
44
|
+
an explicit note request to the owner; do not pretend a chat/description is a note.
|
|
45
|
+
|
|
46
|
+
Cite the project's own decisions with `refs: [{ "id": "D123" }]`. When D123 is
|
|
47
|
+
the answer, resolve with `by: "external-decision"` and required
|
|
48
|
+
`ref: { "id": "D123" }`, explanatory text and a team-role author. The URL is
|
|
49
|
+
optional and never fetched. Realize a resolved question as a specification for
|
|
50
|
+
behavior, a description for meaning, or a project-owned decision record for
|
|
51
|
+
consequential policy. Resolving is not implementation; a known refusal still
|
|
52
|
+
needs `then error` or `then denied`. Reopen when the evidence ceases to answer it.
|
|
53
|
+
|
|
54
|
+
Question gating is separate from V1: standalone Screenplay 4.144.0 has
|
|
55
|
+
`--open-questions fail`; Cratis CLI 3.53.1 does not. Read toolchain
|
|
56
|
+
`references/versions.md` "Model notes gate" when a phase requires no open questions.
|
|
57
|
+
Product evidence: Screenplay `v4.144.0:Documentation/screenplay/model-notes.md:12-77,93-121`,
|
|
58
|
+
`decisions/0045-model-notes-sidecar.md:40-79` and the model-authoring source table.
|
|
59
|
+
|
|
31
60
|
## Question format (STATE.md, packets, edit requests)
|
|
32
61
|
`Qn <declaration address>: <what is missing or contradictory, one sentence> - matters because
|
|
33
62
|
<consequence> - <assumption in use | blocked scope>`. Write it so a reader who has not opened
|
|
@@ -58,5 +87,7 @@ given for a named target. Approval is not repeated for the same scope.
|
|
|
58
87
|
|
|
59
88
|
## Unblocking
|
|
60
89
|
A scope leaves `blocked` only when its question is answered; record the answer as a decision in
|
|
61
|
-
STATE.md
|
|
90
|
+
STATE.md with its note ID, resolve the question note by evidence, and realize the
|
|
91
|
+
answer in the model or decision record. Settled rationale may also go in fenced
|
|
92
|
+
`documentation`. Re-blocking a blocked scope is a no-op.
|
|
62
93
|
Blocked delivery scopes are reported in the packet; the main session creates any issue.
|
package/package/corpus/skills/cratis-screenplay-modeling-lifecycle/references/worked-example.md
CHANGED
|
@@ -84,8 +84,11 @@ module Berths
|
|
|
84
84
|
specification can state the exact rejection. No `BerthReassigned` event was added to carry it.
|
|
85
85
|
- The `Cannot` line in the persona resolves to the `HarbourOffice` policy and a `then denied`
|
|
86
86
|
specification whose caller fixture carries a non-matching role.
|
|
87
|
-
-
|
|
88
|
-
|
|
87
|
+
- On Screenplay 4.144.0, record Q1 as a `question` note on `Berths.Allocation`:
|
|
88
|
+
"Is allocation always manual? Assuming manual allocation; an automatic route
|
|
89
|
+
would need an automation." The documentation carries the working assumption;
|
|
90
|
+
STATE.md carries the returned note ID. Read `stop-or-assume.md` "Durable
|
|
91
|
+
question notes" when recording or resolving it.
|
|
89
92
|
- The documentation is rationale only: the rules themselves are enforced by the constraint, the policy
|
|
90
93
|
and the specifications, not by the prose.
|
|
91
94
|
- The constraint does not say a berth holds one boat at a time: a berth source may replace its
|
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
"fixtures": [],
|
|
5
5
|
"assertions": [
|
|
6
6
|
{ "kind": "play-compiles" },
|
|
7
|
+
{ "kind": "skill-contains", "value": "record it as a `question` note anchored to the element" },
|
|
8
|
+
{ "kind": "skill-contains", "value": "`refs: [{ \"id\": \"D123\" }]`", "file": "references/stop-or-assume.md" },
|
|
9
|
+
{ "kind": "skill-contains", "value": "`by: \"external-decision\"`", "file": "references/stop-or-assume.md" },
|
|
10
|
+
{ "kind": "skill-contains", "value": "Realize a resolved question as a specification", "file": "references/stop-or-assume.md" },
|
|
11
|
+
{ "kind": "skill-contains", "value": "Never put secrets or personal data", "file": "references/stop-or-assume.md" },
|
|
7
12
|
{ "kind": "skill-contains", "value": "Model first" },
|
|
8
13
|
{ "kind": "skill-contains", "value": "`Outcome:`" },
|
|
9
14
|
{ "kind": "skill-contains", "value": "V3 binding-ready" },
|
|
@@ -206,6 +206,10 @@ reason; blocked verdicts list codes and keep the protection they blocked on.
|
|
|
206
206
|
- [ ] Any new example fence compiles with the standalone tool; unmarked fences also pass
|
|
207
207
|
`cratis screenplay validate --warnings-as-errors`.
|
|
208
208
|
|
|
209
|
+
Read [model notes gate](references/versions.md#model-notes-gate) when checking
|
|
210
|
+
unresolved questions: standalone 4.144.0 has `--open-questions fail`; Cratis CLI
|
|
211
|
+
3.53.1 does not. It is separate from compilation and `--warnaserror`.
|
|
212
|
+
|
|
209
213
|
## Route near misses
|
|
210
214
|
|
|
211
215
|
- What to model, phases, gates: `cratis-screenplay-modeling-lifecycle`.
|