Skip to content

Draw personas, automations, translations and read model properties on the VS Code board - #327

Merged
einari merged 7 commits into
mainfrom
claude/focused-allen-u3y1wy
Oct 1, 2026
Merged

einari merged 7 commits into
mainfrom
claude/focused-allen-u3y1wy

Conversation

@einari

@einari einari commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

The VS Code board now draws everything a model says about who uses it and what its automations, translations and read models do, and can be explored the way Studio's board can.

Added

  • Each persona gets its own row on the board, with its description shown when hovering its name. A slice's screens are drawn in the rows of the personas whose policies satisfy the slice's authorize gates. A screen nothing gates, or that no persona may use, stays with the generic user.
  • Clicking a prototype thumbnail opens it full size, and hovering a slice's name says what type of slice it is.
  • The TypeScript compiler (@cratis/screenplay-compiler) reads personas, authorize on modules, features, commands and queries, captures, the events a reaction trigger produces and the commands it invokes, and projection mappings and automap settings. It reports the same diagnostics as the C# compiler.

Fixed

  • Slices, features and modules collapse and expand on the board again, with a normal pointer instead of the drag hand.
  • The lines view draws the lines between a slice's artifacts.
  • Automation slices show their cogwheel, trigger, the events they produce and the command they invoke, instead of nothing. Only automations and translations show a cogwheel.
  • Translation slices show the system their capture reads from and every event it appends, including from children and nested objects.
  • A read model with no readmodel declaration gets the properties its projection sets: automapped event properties, mapped properties, counters, children and nested objects.

claude added 6 commits October 1, 2026 14:24
The TypeScript compiler skipped captures and everything inside a
reaction trigger, so a translation or automation had nothing to show.
It now reads a capture's source, key and appended events, and the
events a trigger produces and the commands it invokes, in the C# shape
the golden syntax holds both compilers to.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MrnFQW3Zx9PqPJgwE4b7Kc
An automation shows the events it produces and the command it invokes,
a translation the system its capture reads and the events it appends,
and the system gets a row for their cogwheels.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MrnFQW3Zx9PqPJgwE4b7Kc
The TypeScript compiler skipped a projection's mappings and automap
settings, so nothing downstream could tell what a read model holds.
It now reads each mapping's property and kind, and the automap setting
of every block that has one, in the C# shape.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MrnFQW3Zx9PqPJgwE4b7Kc
Automap copies an event's properties unless turned off, each mapping
adds the property it sets, and children and nested blocks add theirs,
so a State View's read model is no longer drawn empty.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MrnFQW3Zx9PqPJgwE4b7Kc
Personas were skipped and every authorize was opaque, so nothing could
say who uses a slice. The compiler now reads personas and the policies
they hold, and authorize on modules, features, commands and queries -
with continuation lines, implicit and, grouping and and binding tighter
than or - reporting the same diagnostics as the C# compiler. A folder
merge keeps one declaration of each persona and combines gates with and.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MrnFQW3Zx9PqPJgwE4b7Kc
A slice's screens were all drawn for one generic user. Each persona now
gets a row of its own, with its description, and a slice's screens are
drawn in the rows of the personas whose policies satisfy what gates it -
its module's, features' and own command's or query's authorize. A screen
nothing gates, or that no persona may use, stays with the user.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MrnFQW3Zx9PqPJgwE4b7Kc
@einari einari added the patch Bug fixes, docs, refactoring label Oct 1, 2026 — with Claude
Brings the read-only board's collapsing, lines, prototype preview,
slice-type and persona tooltips, and the cogwheel drawn only in
automations and translators.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MrnFQW3Zx9PqPJgwE4b7Kc
@einari
einari merged commit cead2d2 into main Oct 1, 2026
7 of 9 checks passed
@einari
einari deleted the claude/focused-allen-u3y1wy branch October 1, 2026 17:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

patch Bug fixes, docs, refactoring

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants