Skip to content

Specs fail: generated Screenplay text no longer matches #95

Open

Description

@woksin

The build check fails on PR #94 (a metadata-only change) in two specs:

  • for_CritterStackScreenplayGenerator.when_generating_a_wolverine_marten_application.should_generate_get_incident_as_a_query
  • for_CritterStackScreenplayGenerator.when_composing_vogen_and_critter_stack_by_default.should_preserve_nullable_concept_usage

Both are Assert.Contains failures on generated Screenplay text. The same kind of failure is reproduced on main in Screenplay.Generation (Cratis/Screenplay.Generation#79), so this is most likely the same upstream generator or Screenplay package change. This blocks every PR, including #94.

Activity

  1. self-assigned this
    on Oct 20, 2026
  2. woksin commented on Oct 29, 2026

    @woksin
    CollaboratorAuthor

    Analysis and proposed solution

    Current behaviour

    The affected query assertion is in Source/DotNET/CritterStack.Specs/for_CritterStackScreenplayGenerator/when_generating_a_wolverine_marten_application.cs:50. Nullable concept coverage is in Source/DotNET/CritterStack.Specs/for_CritterStackScreenplayGenerator/when_composing_vogen_and_critter_stack_by_default.cs:20. Current compiler and generation dependencies are declared in Directory.Packages.props:8–12. The reported CI failures have not been independently reproduced, so upstream formatting drift remains a hypothesis rather than an established root cause.

    Root cause / gap

    A text containment failure does not distinguish canonical spelling changes from lost query or nullable-concept semantics. Relaxing the assertion without that distinction could conceal an adapter regression.

    Proposed change

    Compare the actual generated text, graph and compiler diagnostics against both expectations using the current pinned packages. If canonical syntax changed while semantics remain intact, update the exact text expectations and add semantic assertions protecting query classification and nullable concept usage. If semantics changed, fix the responsible contribution or shared lowering path instead. Keep each regression as a focused when_* specification with individual should_* facts; retain canonical output coverage rather than removing it.

    Size, risk and release intent

    S for expectation drift only; low risk; patch. Re-estimate if semantic recovery is broken.

    Dependencies and blockers

    Coordinate diagnosis with Cratis/Screenplay.Generation#79. Capture the first assertion mismatch and actual output before deciding whether a shared-package fix is required.

  3. removed their assignment
    on Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions